Seite 1 von 2 12 Letzte
  1. #1
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.219
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard 3 Wege (und ein nicht empfehlenswerter), um Programme automatisch mit dem Raspberry Pi zu starten

    Manche Programme bringen ihren eigenen Systemd-Dienst mit, um automatisch gestartet zu werden - beispielsweise die verbreiteten Webserver Nginx und Apache. Anders sieht es bei manuell installierter oder selbst entwickelter Software bzw. Skripten aus: Hier musst du dich selbst darum kümmern - ansonsten werden sie beim beenden der Konsole/SSH Sitzung geschlossen und nicht wieder automatisch gestartet, falls der Raspberry Pi neu startet. Dieser Beitrag zeigt drei empfehlenswerte Wege, wie man auf dem Raspberry Pi OS (und damit auch jeder auf Debian basierten GNU/Linux-Distribution) Programme automatisch starten kann. Außerdem weist er auf einen vierten Weg hin, der seit Jahrzehnten veraltet ist, allerdings trotzdem von manchen immer noch empfohlen wird.


  2. #2
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard Kommentar von @vornamenachname9712

    Kommentar von @vornamenachname9712:
    Ja, wenn ich das früher gewusst hätte, hätte ich ganz anders gehandelt und mir viele Umwege ersparen können. @reboot

  3. #3
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.219
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard AW: 3 Wege (und ein nicht empfehlenswerter), um Programme automatisch mit dem Raspberry Pi zu starte

    Deswegen gibt es hier nun einen Beitrag dazu. Besser spät, als nie


  4. #4
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard Kommentar von @jan_no_numbers

    Kommentar von @jan_no_numbers:
    Was ist mit systemd services? Die funktionier auch gut.

  5. #5
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.219
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard AW: 3 Wege (und ein nicht empfehlenswerter), um Programme automatisch mit dem Raspberry Pi zu starte

    Hatte ich im ersten Teil erwähnt, als ich den Boot-Prozess beschrieben habe. Kann man machen, ist halt ein komplettes Init-System und daher einerseits mächtiger, aber eben auch komplexer.


  6. #6
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard Kommentar von @torsten4513

    Kommentar von @torsten4513:
    Hallo und Danke. Hab da ein Script was automatisch starten soll aber es nicht macht. Wenn ich den Befehl im Terminal eingebe "sudo python /home/pi/wetterstation.py" eingebe funktioniert es. Im Crontab "@reboot sudo python /home/pi/wetterstation.py" funktioniert er nicht. Ein anderes Script funktioniert nur eben dieses nicht. Hast du eventuell einen Tip?

  7. #7
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.219
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard AW: Kommentar von @torsten4513

    Hi,

    sudo im crontab eines anderen Nutzers zu verwenden, ist keine gute Idee. Schon alleine, weil es das Konzept auf Nutzerbasis torpediert. Außerdem wird es nicht funktionieren, wenn sudo eine Passwort-Authentifizierung erfordert.
    Wie im Beitrag erwähnt, hat jeder Nutzer seinen eigenen crontab und du solltest crontab -e mit dem Nutzer ausführen, unter dem die Software laufen soll. Wenn sie volle Root-Rechte benötigt, trage sie in den crontab von Root ein:
    Code:
    sudo crontab -e
    Außerdem steht $PATH in der Shell, die Cron startet, nicht zur Verfügung. Das heißt: Alle Binärdateien müssen mit komplettem Pfad angegeben werden. Python liegt beispielsweise in /usr/bin:
    Code:
    u-labs@pi5:~ $ type python
    python is /usr/bin/python
    Dein Cronjob in crontab sollte daher wie folgt lauten:
    Code:
    @reboot /usr/bin/python /home/pi/wetterstation.py
    Zur Bereinigung solltest du den fehlerhaften Job aus dem crontab des aktuellen Nutzers herausnehmen, also crontab -e aufrufen und die von dir hinzugefügte Zeile dort entfernen.


  8. #8
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard AW: 3 Wege (und ein nicht empfehlenswerter), um Programme automatisch mit dem Raspberry Pi zu starte

    Kommentar von @torsten4513:
    U-Labs auch wenn ich den Befehl ohne sudo eingebe startet es nicht. Hab die anderen gelöscht und den so eingetragen wie im Video gezeigt. Das andere Script funktioniert ja mi sudo

  9. #9
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.219
    Thanked 9.133 Times in 3.007 Posts
    Blog Entries
    5

    Standard AW: 3 Wege (und ein nicht empfehlenswerter), um Programme automatisch mit dem Raspberry Pi zu starte

    Wie gesagt: Mag sein, dass das unter Umständen funktioniert. Es ist und bleibt dennoch schlechte Praxis. Crontab ist Multi-Nutzer fähig und legt extra eine eigene Datei für jeden Benutzer an. Wenn du jetzt mit sudo den Nutzer wechselst, boykottierst du das Konzept. Crontab wird für deinen Nutzer pi ausgeführt und muss dann zum root Nutzer wechseln. Das macht keinen Sinn, weil das System einen besseren Weg dafür hat. Und schafft unnötig Komplexität sowie potenzielle Fehlerquellen. Würde ich daher nicht so machen.

    Wenn der Rest soweit passt, liegt dein ursprüngliches Problem wahrscheinlich nicht an Cron, sondern an dem Skript. Ich würde mir dessen gesamte Ausgabe in eine Datei schreiben lassen und nach dem Neustart dort rein schauen.
    Code:
    @reboot /usr/bin/python /home/pi/wetterstation.py > /home/pi/wetterstation-cron.log 2>&1
    Das leitet stderr (2) zu stdout (1) um und schreibt beides in die Datei /home/pi/wetterstation-cron.log. Für den Fall, dass z.B. Fehler/Exceptions auftreten, die auf den dafür vorgesehenen Stream stderr geschrieben werden. Damit bekommst du sämtliche Ausagben und kannst nach dem Start schauen, ob die Logdatei existiert. Ist sie da, wurde der Cronjob ausgeführt.
    Code:
    ls -lh /home/pi/wetterstation-cron.log
    Anschließend mit z.B. tail rein schauen. Oder einem Texteditor. Je nachdem, wie lange es dauert, bis dort Ausgaben erscheinen. Es ist gut möglich, dass z.B. auf Geräte zugegriffen wird, die noch nicht bereit sind. Oder Binärdateien referenziert, welche mangels $PATH nicht gefunden werden. Ohne zu wissen, was das Skript konkret tut, kann man dir hier nicht weiterhelfen & du musst selbst mit den Informationen aus dem Log auf Fehlersuche gehen.
    Code:
    tail -f /home/pi/wetterstation-cron.log


  10. #10
    Avatar von U-Labs YouTube
    Registriert seit
    30.09.2021
    Beiträge
    1.497
    Thanked 32 Times in 30 Posts

    Standard Kommentar von @finnsteck

    Kommentar von @finnsteck:
    Das Video kommt zum perfekten Zeitpunkte, brauche das gerade für ein Schulprojekt. Bei mir müsste das Programm, da es Customtkinter verwendet(Drittanbietermodul die man so weit ich des kapiert habe nur in einem venv installieren kann) aber in einem venv starten. Kann ich das venv und das Python Script mit einem Befehl hinter Exec="hier dann der befehl" packen oder muss ich dann Umwege nehmen. danke für das top Video und würde mich über jede Hilfe freuen!

Seite 1 von 2 12 Letzte

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 19.08.2023, 11:29
  2. Antworten: 0
    Letzter Beitrag: 09.08.2021, 00:51
  3. Antworten: 1
    Letzter Beitrag: 11.02.2020, 17:27
  4. Win8 Programm automatisch auf anderem Bildschirm starten
    Von TomatenKetchup im Forum Windows
    Antworten: 2
    Letzter Beitrag: 20.02.2014, 20:17
  5. Antworten: 2
    Letzter Beitrag: 14.10.2013, 17:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.