Thema: 3 Wege (und ein nicht empfehlenswerter), um Programme automatisch mit dem Raspberry Pi zu starten
-
21.01.2024, 15:09 #1Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.473
- Blog Entries
- 5
Thanked 9.519 Times in 3.334 Posts
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.
-
21.01.2024, 15:10 #2Brücke zwischen U-Labs & YouTube
- Registriert seit
- 30.09.2021
- Beiträge
- 6.679
Thanked 106 Times in 103 Posts
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
-
21.01.2024, 15:10 #3Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.473
- Blog Entries
- 5
Thanked 9.519 Times in 3.334 Posts
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
-
21.01.2024, 15:10 #4Brücke zwischen U-Labs & YouTube
- Registriert seit
- 30.09.2021
- Beiträge
- 6.679
Thanked 106 Times in 103 Posts
Kommentar von @jan_no_numbers
Kommentar von @jan_no_numbers:
Was ist mit systemd services? Die funktionier auch gut.
-
21.01.2024, 15:12 #5Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.473
- Blog Entries
- 5
Thanked 9.519 Times in 3.334 Posts
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.
-
21.01.2024, 15:16 #6Brücke zwischen U-Labs & YouTube
- Registriert seit
- 30.09.2021
- Beiträge
- 6.679
Thanked 106 Times in 103 Posts
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?
-
21.01.2024, 15:25 #7Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.473
- Blog Entries
- 5
Thanked 9.519 Times in 3.334 Posts
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:
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:sudo crontab -e
Dein Cronjob in crontab sollte daher wie folgt lauten:Code:u-labs@pi5:~ $ type python python is /usr/bin/python
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.Code:@reboot /usr/bin/python /home/pi/wetterstation.py
-
21.01.2024, 21:32 #8Brücke zwischen U-Labs & YouTube
- Registriert seit
- 30.09.2021
- Beiträge
- 6.679
Thanked 106 Times in 103 Posts
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
-
21.01.2024, 21:43 #9Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.473
- Blog Entries
- 5
Thanked 9.519 Times in 3.334 Posts
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.
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:@reboot /usr/bin/python /home/pi/wetterstation.py > /home/pi/wetterstation-cron.log 2>&1
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:ls -lh /home/pi/wetterstation-cron.log
Code:tail -f /home/pi/wetterstation-cron.log
-
21.01.2024, 21:45 #10Brücke zwischen U-Labs & YouTube
- Registriert seit
- 30.09.2021
- Beiträge
- 6.679
Thanked 106 Times in 103 Posts
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!
Ähnliche Themen
-
Raspberry Pi: Welches Modell habe ich? 3 Wege es herauszufinden
Von DMW007 im Forum Raspberry PiAntworten: 1Letzter Beitrag: 22.01.2025, 21:19 -
2 empfehlenswerte Wege, wie du Node.js auf dem Raspberry Pi/Debian Server installierst + Webserver
Von DMW007 im Forum LinuxAntworten: 0Letzter Beitrag: 19.08.2023, 11:29 -
Asus-Programme nach Neuinstallation automatisch wieder vorhanden?
Von Max899 im Forum SoftwareAntworten: 1Letzter Beitrag: 11.02.2020, 17:27 -
Win8 Programm automatisch auf anderem Bildschirm starten
Von TomatenKetchup im Forum WindowsAntworten: 2Letzter Beitrag: 20.02.2014, 20:17 -
programme und treiber auf win 7 in xpmodus starten?
Von koalabehr im Forum WindowsAntworten: 2Letzter Beitrag: 14.10.2013, 17:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.

Zitieren