Autostart eines Python Programm auf dem Raspberry Pi

Veröffenticht am 23.09.2016    von     in der Kategorie Raspberry Pi     bisher 11 Reaktionen    Zuletzt überarbeitet am 16.02.2018


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.

In dem Verzeichnis öffnest du nun eine Textdatei mit einem Texteditor, ich verwende hierzu den im Raspbian vorhandenen nano Editor.

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.

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.

Sollte dein Programm nicht unter den Prozessen sein, musst du eventuell noch die entsprechenden Rechte setzen.

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.



Servus, ich bin Wolfgang.

Blogger – Maker – web & mobile Developer – Dobermann Besitzer.

Mit meinem über die Jahre gesammelten Wissen als Webworker möchte ich dir Hilfestellungen und Anregungen zur Nutzung der sich aus dem digital Lifestyle ergebenden Möglichkeiten und Notwendigkeiten geben.

Einen aktuellen Schwerpunkt auf meinem Blog bildet das Thema IoT im Zusammenspiel mit dem Raspberry Pi.


Unterstützen

Dieser Beitrag hat dir gefallen und konnte dir bei deinem Projekt oder Problem behilflich sein? Dann würde ich mich sehr freuen, wenn du dich mit einer noch so kleinen Spende erkenntlich zeigen möchtest.


Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Notwendige Felder sind mit * markiert.

11 Reaktionen (10 Kommentare)

  • Daniel schrieb am 20. August 2018:

    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.

    • Wolfgang schrieb am 20. August 2018:

      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

  • Martin Hüser schrieb am 23. Juli 2018:

    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

    • Wolfgang schrieb am 23. Juli 2018:

      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

  • Lisa Meier schrieb am 20. Februar 2018:

    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ß

    • Wolfgang schrieb am 1. März 2018:

      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

  • Axel Burkhardt schrieb am 16. Februar 2018:

    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

    • Wolfgang schrieb am 16. Februar 2018:

      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

  • Herbert Hoellger schrieb am 2. März 2017:

    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

    • Wolfgang schrieb am 3. März 2017:

      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