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.

  1. Autostart auf dem Desktop
  2. 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:

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
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-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!