Autostart eines Python Programm auf dem Raspberry Pi
Dieser kurze Beitrag soll dir zeigen, wie du dein in Python geschriebenes Programm beim Start des Raspberry Pi automatisch im Desktop Modus starten und ausführen lässt.
Bekanntlich führen viele Wege nach Rom, sodass es bestimmt auch mehrere Möglichkeiten für den Autostart eines Programmes bzw. Services unter Raspbian auf dem Raspberry Pi gibt. Meinen Weg zeige ich dir in den folgenden Schritten.
Solltest Du Deinen Raspberry Pi nicht im Desktop-Modus betreiben, bzw. möchtest darauf verzichten, dann schaue Dir mal meinen Beitrag “Python Script auf dem Raspberry Pi automatisch starten” an.
Anlegen der Autostart – Datei
Als Erstes öffnest du dein Terminal-Programm, oder verbindest dich per SSH mit deinem Raspberry Pi. Das notwendige Verzeichnis für die Datei findest du im Pfad /home/pi/.config/autostart. Damit die Datei auch dort abgespeichert wird, empfiehlt sich ein Wechsel dorthin mit folgendem Befehl.
1 |
cd /home/pi/.config/autostart |
In dem Verzeichnis öffnest du nun eine Textdatei mit einem Texteditor, ich verwende hierzu den im Raspbian vorhandenen nano Editor.
1 |
sudo nano pythonprogramm.desktop |
Statt der von mir verwendeten Bezeichnung pythonprogramm kannst du eine beliebige Bezeichnung, z.B. den Namen deines Programmes verwenden.
Inhalt der Autostart – Datei
Nun fügst du folgenden Inhalt in die Datei ein. Hierzu möchte ich gleich anmerken, die Schreibe mir auch gerne den Aufruf des Programmes in der Pythonumgebung mit in diese Datei. Jedoch wird diese auskommentiert durch das # Zeichen und wird dadurch nicht ausgeführt.
1 2 3 4 5 6 7 8 9 |
[Desktop Entry] Encoding=UTF-8 Type=Application Name=pythonprogramm #Exec=sudo idle /var/www/html/pythonprogramm.py Exec=sudo /var/www/html/pythonprogramm.py StartupNotify=false Terminal=yes Hidden=false |
Auch hier gilt, statt der Bezeichnung pythonprogramm verwendest du deinen Programmnamen. Zudem musst du den Pfad zu deinem Programm anpassen. Die Datei speicherst du mit der Tastenkombination Strg+o und beendest den Texteditor mit Strg+x.
Laufende Prozesse anzeigen
Nach einem Neustart des Raspberry Pi läuft nun dein Programm auf dem Raspberry Pi als eigenständiger Prozess. Dies kannst du über den folgenden Terminalbefehl überprüfen.
1 |
ps -e |
Sollte dein Programm nicht unter den Prozessen sein, musst du eventuell noch die entsprechenden Rechte setzen.
1 |
sudo chmod 0777 pythonprogramm.py |
Auch hier steht pythonprogramm wieder als Synonym für deine Programmbezeichnung.
Letzte Anmerkung
Bedenke bitte, jegliche Änderung am Programm-Code wird erst nach einem Neustart wirksam.
Endlich!!
Ich habe ein fenster mit python3 unter der verwendung von tkinter erstellt und dieses sollte direkt beim start ausgeführt werden.
Ich habe viele Lösungen versucht hat leider nicht geklappt bis ich das hier verwendet habe. TOP!!!!
Kleine anmerkung eventuell hilfreich für andere: anstatt Exec=sudo…… habe ich Exec=python3 /home/….. verwendet.
Vielen dank für die hilfe echt Top!!
Hallo Domey,
vielen lieben Dank für Deine positive Rückmeldung und dem Tipp mit “Exec=python3/…”.
Viele Grüße
Wolfgang
Hallo Wolfgang,
ich will eine Kamera damit anstarten jedoch funktioniert es nicht, da diese nicht am Start ausgeführt wird. Ich hatte keinen Autostart Ordner deswegen hab ich einen erstellt. Des Weiteren hab ich nicht ganz verstanden mit welchem Befehl ich anfangen muss. Stimmt cd /home/pi/.config/autostart ?
Hallo Sebastian,
der Befehl cd /home/pi/.config/autostart gehört nicht in deine Autostartdatei. Mit der cd Anweisung kannst du direkt in den ausgewählten Ordner wechseln. Zum Starten der Kamera benötigst du die entsprechende Kamerasoftware.
Viele Grüße
Wolfgang
Hallo ich habe auf meinem pi ein Programm zur geschwindigkeitsmessung geschrieben und möchte nun das Programm als Autostart Programm ausführen lassen.
Programm liegt hier: /home/pi/Test.py
Was genau muss ich jetzt ins Terminal eingeben damit das Programm beim hochfahren automatisch öffnet.
Und muss im Python Programm selbst auch noch ein Befehl für den autostart rein?
Danke vorab für die Hilfe.
Hallo Daniel,
wenn du deinen Raspberry Pi im Desktop-Modus betreibst, dann kannst du die einzelnen Schritter dieser Beschreibung folgen. Im Inhalt der Autostart-Datei schreibst du statt “Exec=sudo /var/www/html/pythonprogramm.py” einfach deinen Pfad und Programmnamen, also “Exec = sudo /home/pi/Test.py”.
Im Pythonprogramm musst du bezüglich des Autostarts keinen Befehl verwenden.
Wenn du deinen Python ohne Desktop-Modus betreibst, dann kannst du die Schritte meines Beitrages “Python Script auf dem Raspberry Pi automatisch starten” verwenden.
Viele Grüße
Wolfgang
Hallo,
habe alles so gemacht wie hier beschrieben, aber wenn ich den Pi neustarte öffnet sich das Python Programm nicht.
Bei dem Versuch die rechte für das Programm zu setzen habe ich folgende Meldung erhalten:
chmod: Zugriff auf “TagRead2.py” nicht möglich: Datei oder Verzeichnis nicht gefunden
Hallo,
wenn du in das Verzeichnis wechselst “cd /home/pi/.config/autostart” und dann dir den Inhalt anzeigen lässt “ls”, ist die von dir erstellte Datei vorhanden? Vielleicht hat sich bei der Dateianlage einen Tippfehler eingeschlichen. Auch beachte bitte, Linux unterscheidet zwischen Groß- und Kleinschreibung. Bei der Rechtevergabe musst du dich im Verzeichnis der Datei befinden, oder den Pfad zur Datei mit angeben.
Viele Grüße
Wolfgang
Hallo,
ich habe versucht deiner Anleitung zu folgen und mein Python Script in den Autostart zu legen. Trotz freischalten der Rechte wurde das Script nicht gestartet. Beim Versuch das Script manuell im LXTerminal zu starten erhielt ich folgende Meldung:
pi@raspberrypi:~ $ sudo /home/pi/TestTrafoAnschluesse.py
/home/pi/TestTrafoAnschluesse.py: 1: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 2: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 3: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 4: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 5: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 6: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 7: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 8: /home/pi/TestTrafoAnschluesse.py: import: not found
/home/pi/TestTrafoAnschluesse.py: 9: /home/pi/TestTrafoAnschluesse.py: import: not found
from: can’t read /var/mail/email.mime.text
/home/pi/TestTrafoAnschluesse.py: 12: /home/pi/TestTrafoAnschluesse.py: Empfaenger: not found
/home/pi/TestTrafoAnschluesse.py: 13: /home/pi/TestTrafoAnschluesse.py: Absender: not found
/home/pi/TestTrafoAnschluesse.py: 14: /home/pi/TestTrafoAnschluesse.py: Passwort: not found
/home/pi/TestTrafoAnschluesse.py: 24: /home/pi/TestTrafoAnschluesse.py:
/home/pi/TestTrafoAnschluesse.py: 29: /home/pi/TestTrafoAnschluesse.py: Syntax error: “(” unexpected (expecting “do”)
Wenn ich das Script ganz normal über Python starte gib es keinerlei Probleme.
Wie bekomme ich es hin, dass das Script trotzdem gestartet wird.
Gruß
Hallo Lisa,
ohne genau zu wissen, welche Bibliotheken du importierst, ist eine Hilfestellung für mich aus der Entfernung leider nicht möglich.
Viele Grüße
Hallo
Vielen Dank für die Beschreibung. Hat super funktioniert
aber wie kann ich den laufenden Prozess beenden um etwas am Programm zu ändern?
Gruß Axel
Hallo Axel,
um den laufenden Prozess zu beenden, lässt Du Dir mit dem Befehl “ps -e” im Terminal alle laufenden Prozesse anzeigen. Dies ist notwendig, damit Du die Prozessidentifikationsnummer (PID) des zu beendenden Prozesses herausfindest. Danach gibst Du im Terminal den Befehl “kill PID” ein, dabei steht PID für die ermittelte Id.
Viele Grüße
Wolfgang
Hallo Herr “Wolfgang”
Mein Name ist Herbert (50 Jahre, verheiratet seit 30 Jahren,habe drei Kinder, vier Enkelkinder und bin ein Hobbyelektroniker der sich z:Z: mit dem Pi “beschäftigt”.
Habe eine Ausbildung zum Bergmechaniker, Umschulung zum Informationselektroniker und noch eine Umschulung zu Anwendungsentwickler.
Leider stehe ich, um jetzt um Ihre/Deine Hilfe zu Bitten, vor dem Problem das mein Python Programm nicht beim auotmatischen Start läuft.
Ich habe fogende Zeilen:
Das Programm befindet sich in /home/pi.
Name des Programm temp.py
meine temp.desktop befindet sich im Verzeichnis
/etc/xdg/autostart
Meine temp.desktop hat folgende Zeilen:
[Desktop Entry]
Name=temp.py
Comment=Kommentar
Type=Application
Exec=sudo idle /home/pi/temp.py
Terminal=false
Gruß aus Dorsten(NRW)
Herbert
Hallo Herbert,
mit dem Aufruf “Exec=sudo idle /home/pi/temp.py” wird die Python IDE mit dem Programmskript geöffnet. Ein automatisches Ausführen ist so nicht möglich. Ich starte meine Skripte mit dem direkten Aufruf, in Deinem Fall “Exec= sudo /home/pi/temp.py”.
Sollte sich bei einem Start des Raspberry Pi bei Deiner Konfiguration nicht öffnen, dann überprüfe den Pfad zur temp.desktop. Wenn Du das Skript direkt startest, läuft es im Hintergrund und das IDLE Fenster wird nicht geöffnet.
Viele Grüße
Wolfgang
Kleiner Hinweis, alle Kommentare werden moderiert.
Dies bedeutet, der Kommentar wird vor der Veröffentlichung durchgelesen und von mir geprüft. Auch behalte ich mir vor, jeden Kommentar zu löschen, der nicht direkt auf das Thema abzielt oder nur den Zweck hat, Leser oder Autoren herabzuwürdigen.
Neuste Beiträge
Kleinen Spickzettel für Raspbian OS Befehle
Entdecke die Welt von Webnist.de
Erfahre mehr über die Hintergründe meines Blogs und wie ich dich bei deinen digitalen Projekten unterstützen kann.Kategorien
KATEGORIEN
Zuletzt aktualisierte Beiträge
Aktuelles Video auf YouTube
Beschreibung der Verwendung eines TTP223B Touch Sensors am GPIO Port des Raspberry Pi mit Python.
Neuste Reaktionen