Script im Autostart verknüpfen

  • Also mein Vorhaben ist es, ein Script automatisch beim Start des RPIs auszuführen, dass einen Tweet absendet. Der Code dazu ist simpel:

    Bash
    #!/bin/sh
    
    
    twidge update "Text"


    Das Script funktioniert auch, nur weiß ich nicht, wie genau ich es in den Autostart einbinden kann. Hab auch schon gegoogelt aber wurde leider nicht daraus schlau.
    Vielleicht kann mir ja einer von euch dabei helfen.


    Vielen Dank im Voraus!

  • Nu' sei doch nicht so streng ;)


    Knizz: Guck' mal nach "runlevel": Beim Hochfahren lässt LINUX das Starten von Programmen zu verschiedenen Zeitpunkten des Bootens zu. Wenn Du Deine Skripte richtig einsortierst, laufen sie entweder nach dem Einloggen (wie der Autostart-Krams unter Windows) oder eben noch eher oder unter spezielleren Bedingungen - Du find's das schon 'raus...


    Fröhliche Grüße, Thomas

  • Hi,
    bei Debian gibt es schon einen "Autostart-Ordner". Schau mal unter /home/pi/.config/autostart.
    Dort kannst du das Script reinkopieren oder eine Verknüpfung anlegen.


    Gruß, woddy

    Edited once, last by woddy ().

  • Hallo zusammen,


    die Fragen die sich stellen sind doch: Wann soll das Skript ausgeführt werden? Beim Systemstart oder wenn sich ein Benutzer an der Shell oder unter LXDE anmeldet? Soll es für jeden Benutzer ausgeführt werden oder nur wenn sich ein spezieller Benutzer anmeldet?


    Je nachdem wie diese Fragen beantwortet werden ergibt sich eine andere Lösung.


    Beim Systemstart:
    Entweder über die "/etc/rc.local" oder ein eigenes Init-Skript.


    Beim Starten einer Shell:
    Nur für einen Benutzer über "~/.bash_profile" oder "~/.bashrc". Für alle Benutzer über die "/etc/bashrc".


    Beim Anmelden an der grafischen Oberfläche LXDE:
    Für alle Benutzer über die "/etc/xdg/lxsession/LXDE/autostart" oder nur für einen Benutzer über "~/.config/autostart/*.desktop".


    Gruß Georg

  • Vielen Dank an alle schon mal für die Antworten. Hab es gestern versucht in rc.local einzubinden, wobei der Pi anschließend nicht mehr richtig gebootet hat. Hab das Problem aber unter meinem Ubunut Netbook wieder gelöst.


    boandlkramer
    Das Skript soll ausgeführt werden, sobald auf meinem Pi auf dem Desktop angekommen ist, also sich der Benutzer schon angemeldet hat. Müsste ich dann mein Skript bei "/etc/xdg/lxsession/LXDE/autostart" einbinden?

  • Hallo Knizz,


    Quote

    Das Skript soll ausgeführt werden, sobald auf meinem Pi auf dem Desktop angekommen ist, also sich der Benutzer schon angemeldet hat. Müsste ich dann mein Skript bei "/etc/xdg/lxsession/LXDE/autostart" einbinden?


    In dem Fall würde sich die "/etc/xdg/lxsession/LXDE/autostart" anbieten. Versuchs mal mit dem folgenden Eintrag. Eventuell musst du noch den vollständigen Pfad von "twidge" angeben.


    Code
    @twidge update "Text"


    Gruß Georg

  • Vielen Dank! Wenn ich nur den angegeben Code verwende funktioniert es schon mal nicht. Wie finde ich denn die Pfad von twidge heraus und wie muss ich diesen dann angeben? Kann es eventuell auch sein, dass er den Tweet noch nicht absenden kann, weil der Pi sich erst später mit dem Internet verbindet. Also die Aktion wird ausgeführt und erst danach steht die Verbindung. Oder verbindet sich der Pi schon während dem booten mit dem Internet?

  • Bau doch in dein Script noch eine elif Schleife ein, welche die LAN Verbindung prüft, ist dann z.B. dein Gateway per ping noch nicht erreichbar, dann wartest Du mit dem sleep Command ein paar Sekunden und probierst es erneut, wenn der ping dann Erfolg hat, startest Du dein eigendliches Kommando.

  • Hallo Knizz,


    Quote

    Wie finde ich denn die Pfad von twidge heraus und wie muss ich diesen dann angeben?


    Ruf mal folgenden Befehl auf.


    Code
    which twidge


    Den angezeigten Pfad schreibst du dann anstelle von "<twidge_command>" in die folgende Zeile.


    Code
    @<twidge_command> update "Text"


    Quote

    Kann es eventuell auch sein, dass er den Tweet noch nicht absenden kann, weil der Pi sich erst später mit dem Internet verbindet. Also die Aktion wird ausgeführt und erst danach steht die Verbindung. Oder verbindet sich der Pi schon während dem booten mit dem Internet?


    Die Netzwerkverbindung und somit auch die Internetverbindung sollte bereits stehen wenn die /etc/rc.local ausgeführt wird. Die rc.local ist eine der letzten Skripte die beim Systemstart ausgeführt werden.


    Gruß Georg


    PS: Schreib doch bitte deine Plattformen in der Signatur in eine Zeile.

  • Hallo Knizz,


    hab leider gerade erst festgestellt, dass die BB-Codes im letzten Post nicht ganz gepasst haben. Ich hoffe du hast das bemerkt und nicht übernommen.


    Bekommst du irgendwelche Fehlermeldungen angezeigt? Wenn du twidge direkt aufrufst funktioniert alles.


    Gruß Georg