Raspberry Pi OS: Python-Script beim Booten automatisch starten (Autostart)
Wenn Du ein Programm oder Script in Python geschrieben hast und es soll beim Booten von Raspberry Pi OS automatisch gestartet werden, gibt es verschiedene Möglichkeiten. Zwei davon sind empfehlenswert.
- Autostart auf dem Desktop
- Autostart mit systemd
Welche Lösung sollte man wählen?
Wie immer ist die Antwort, es kommt darauf an. Die richtigere Lösung wäre sicherlich mit „systemd“. Sie hat den Vorteil, dass man das Programm oder Script als Dienst im Betriebssystem verankert und dann mit den systemd-Kommandos steuern kann. Also zum Beispiel auch Starten und Stoppen. Mit den Autostart-Lösungen auf dem Desktop ist das nicht so einfach möglich.
Desweiteren hat die Desktop-Lösung den Nachteil, dass sie nur funktioniert, wenn der Desktop gestartet wird. Das macht aber auch nur dann Sinn, wenn das Programm den Desktop braucht.
1. Autostart auf dem Desktop
Die automatische Ausführung eines Python-Skripts mit der Autostart-Funktion des Desktops kann eine Lösung sein.
Zuerst erstellt man eine neue Datei mit dem Dateinamen „DATEINAME.desktop“. Wähle für DATEINAME einen eigenen Namen.
nano /home/pi/.config/autostart/DATEINAME.desktop
In die Datei trägt man folgende Zeilen ein. Zu beachten ist das korrekte Verzeichnis und der Dateiname der Python-Datei.
[Desktop Entry] Type=Application Name=Autostart für DATEINAME Exec=/usr/bin/python3 /home/pi/DATEINAME.py
Anschließend die Datei speichern und schließen: Strg + O, Return, Strg + X.
Ob der Autostart funktioniert, kann man testen wenn der Raspberry Pi neu gestartet wird.
2. Autostart mit systemd
Die beste Lösung ist „systemd“. Es hat den Vorteil, dass man jedes Programm als Dienst bzw. Service im Betriebssystem verankern und mit den systemd-Kommandos auf der Kommandozeile steuern kann.
Hinweis: Bevor man eine Autostart-Datei erstellt, sollte man sicher gehen, dass das Programm fehlerfrei arbeitet.
Zuerst erstellt man eine neue Datei mit dem beispielhaften Dateinamen „DATEINAME.service“. Mit dieser Datei legt man den Dienst und seinen Namen im System fest. Wähle für DATEINAME einen eigenen Namen aus.
sudo nano /lib/systemd/system/DATEINAME.service
In die Datei trägt man folgende Zeilen ein. Zu beachten ist das korrekte Verzeichnis und der Dateiname der Python-Datei.
[Unit] Description=Autostart für DATEINAME After=multi-user.target [Service] Type=idle ExecStart=/usr/bin/python3 /home/pi/DATEINAME.py [Install] WantedBy=multi-user.target
Anschließend die Datei speichern und schließen: Strg + O, Return, Strg + X.
Anschließend teilen wir dem System mit, dass es einen neuen Dienst gibt.
sudo systemctl daemon-reload
Steuerung des systemd-Service
Mit dem folgenden Kommando erhält man Informationen über den Dienst. Ob er gestartet, gestoppt und ob er automatisch gestartet wird.
sudo systemctl status DATEINAME.service
Mit dem folgenden Kommando wird das Programm gestartet.
sudo systemctl start DATEINAME.service
Das Programm wird dann solange laufen, bis der Rechner heruntergefahren wird oder das Programm gestoppt wird.
Mit dem folgenden Kommando wird das Programm gestoppt bzw. beendet.
sudo systemctl stop DATEINAME.service
Mit dem folgenden Kommando wird das Programm beim nächsten Systemstart automatisch ausgeführt.
sudo systemctl enable DATEINAME.service
Um zu prüfen, ob das Programm beim Systemstart gestartet wird, wirst du einen Reboot durchführen müssen.
sudo reboot
Mit dem folgenden Kommando wird die Autostart-Funktion abgeschaltet.
sudo systemctl disable DATEINAME.service
Aber Achtung, das Programm wird dadurch nicht beendet. Das muss man zusätzlich stoppen, wenn man das will.
Weitere verwandte Themen:
- Raspberry Pi: Programmieren mit Python
- Raspberry Pi OS: Dienste starten, stoppen, neustarten, aktivieren und deaktivieren
- Raspberry Pi OS: Arbeiten auf und mit der Kommandozeile
- Raspberry Pi OS: Richtig ausschalten und neustarten
Frag Elektronik-Kompendium.de
Produktempfehlungen
Elektronik-Set Raspberry Pi Edition
Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero
- Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
- Experimentieren und Programmieren ohne Vorkenntnisse
- Sofort Loslegen mit All-in-one-Set
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.


