Python Script auf dem Raspberry Pi automatisch starten

Veröffenticht am 28.05.2017    von     in der Kategorie Raspberry Pi, Raspberry Pi OS     bisher 24 Reaktionen    Zuletzt überarbeitet am 10.10.2023


Dieser kurze Beitrag soll dir zeigen, wie du dein in Python geschriebenes Programm beim Start des Raspberry Pi automatisch starten und ausführen lässt. Im Gegensatz zu meinem Beitrag “Autostart eines Python Programms auf dem Raspberry Pi“, ist dieser Ansatz für den Betrieb des RasPi ohne Desktop-Modus möglich.

 

Aktualisierung: Stelle sicher, dass dein Python-Skript ausführbar ist, indem du ihm zum Beispiel Ausführungsrechte gibst:

 

Erweiterung der Autostart – Datei

Zuerst öffnest du über dein Terminal-Programm die Datei rc.local. Das notwendige Verzeichnis für die Datei findest du im Pfad /etc/. Folgender Befehl ruft den Texteditor Nano zur Bearbeitung der notwendigen Datei auf.

 

Ergänzung der Autostart – Datei

Nun ergänzt du den Inhalt der Datei mit folgender Anweisung. Diese muss vor dem vorhandenen “exit 0” am Ende der Datei eingefügt werden und den Pfad zum existierenden Skript beinhalten.

Im obigen Beispiel wird die Datei test.py im Verzeichnis “home/pi” gestartet.

Hinweis zum Programmaufruf

Die Anweisung wird mit einem “&” Zeichen ergänzt, dies ist insoweit wichtig, denn sollte dein Programm nicht nur einmal durchlaufen, sondern in einer Schleife im Hintergrund laufen, würde der Raspberry Pi ohne “&” ggf. in einer Endlosschleife hängen bleiben und nicht vollständig booten.

 

Letzte Anmerkung

Bedenke bitte, jegliche Änderung am Programm-Code wird erst nach einem Neustart wirksam.


Transparenz-Hinweis:

Die auf dieser Seite verwendeten Produktlinks sind sogenannte Affiliate-Links zu einem Partnerprogramm. Für dich entstehen dadurch keine Mehrkosten, ich erhalte durch deinen Kauf über den Link eine kleine Provision.


Wolfgang Raab – Betreiber von webnist.de

Mein Name ist Wolfgang, ich beschäftige mich nun schon seit 1985 mit der EDV und im Besonderen mit der Software- und Webentwicklung.

Auf diesem Blog schreibe ich über Dinge, die mich begeistern, beschäftigen und ich der Meinung bin, es könnte für andere interessant und hilfreich sein.

Als großer Fan des Raspberry Pi finde ich es spannend, wie man den kleinen Computer in Verbindung mit dem IoT und Smart Home nutzen kann. Deshalb behandeln viele Beiträge auch genau dieses Thema.

Ich bin ein leidenschaftlicher Leser und Fotograf. Wenn ich nicht gerade in einem spannenden Roman versinke, bin ich oft unterwegs, um die Schönheit der Welt mit meiner Kamera einzufangen und zu teilen.

Weitere Infos und Fotos findest du auf einem der folgenden Plattformen.






Mehr erfahren?

Besuche die "About"-Seite meines Blogs und finde heraus, wie du mit mir in den Bereichen Web- und Mobile-Programmierung und Raspberry Pi zusammenarbeiten kannst. Hier beginnt deine digitale Reise.


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.




  • Sven Lederer schrieb am 11. April 2020:

    Hallo Wolfgang,
    beim klicken auf Antworten ist nichts passiert, deswegen versuche ich es jetzt einfach so. Vielen Dank für Deine sehe schnelle Antwort. Das scheint genau das richtige zu sein. Ich werde mir das genau anschauen und das ausprobieren.

    Vielen vielen Dank.
    Grüße
    Sven

  • Sven Lederer schrieb am 10. April 2020:

    Hallo Wolfgang,
    ich möchte gerne das ein python script 3 mal täglich abläuft, alle 8 Stunden einmal. ich könnte dies nun mit time und wait so eintakten, aber mir wäre es lieber das Programm 3 mal separat zu starten und eine statusmeldung abliefern, wenn das programm nicht gestartet werden konnte. So würde das Programm in der übrigen Zeit keine ressourcen verbrauchen und ich könnte vielleicht noch ein paar andere programme in dieser Zeit automaitisert ablaufen lassen.

    Vielen Dank im Voraus
    Viele Grüße
    Sven

    • Wolfgang schrieb am 11. April 2020:

      Hallo Sven,
      vielen Dank für Deinen Kommentar. Für die regelmäßige Ausführung von Aufgaben bzw. Skripten bietet sich die Aufgabenplanung an. Hier kannst Du regelmäßig Skripte ausführen lassen. Unter Linux bzw. dem Raspberry Pi bietet sich hierzu u.a. crontab an.

      Eine Beschreibung findest du unter https://www.raspberrypi.org/documentation/linux/usage/cron.md

      Viele Grüße
      Wolfgang

  • Anna schrieb am 7. Januar 2020:

    Hi
    Wie bekomme ich das Programm dann wieder in den Vordergrund um zu sehen ob das Programm lauft

    • Wolfgang schrieb am 7. Januar 2020:

      Hallo,
      über das Terminal kannst du dir mit dem Befehl ps -ax alle Prozesse anzeigen lassen. Dein Programm sollte hier aufgelistet sein. Um das Programm zu beenden, benutze den Befehl kill (plus die Prozess-ID(PID) = z.B. kill 1022).
      Viele Grüße
      Wolfgang

  • Norbert Eiche schrieb am 26. Juli 2019:

    Norbert-Eiche@t-online.de
    Hallo Wolfgang ich komme nicht weiter mit meinem Autostart , hier mein Skript ich benutze cd /home/pi/.config/ autostart dann
    sudo nano autostart.desktop und der Eintrag lautet

    [Desktop Entry]
    Encoding=UTF-8
    Type=Application
    Name=autostart.py
    Exec=sudo idle /home/pi/autostart.py

    das IDLE Fenster mit dem Code wird geöffnet , aber nicht ausgeführt F5 !
    brauche ich noch einen extra startbefehl für den Python Programmstart !

    Grüße Norbert

    • Wolfgang schrieb am 29. Juli 2019:

      Hallo Norbert,
      ein Startbefehl für die IDLE ist mir nicht bekannt. Aber warum startest du dein Skript nicht direkt mit dem Befehl python bzw. python3?
      Viele Grüße
      Wolfgang

  • Norbert Eiche schrieb am 15. Juli 2019:

    Hallo Wolfgang vielen Dank für deine gute Anleitung zum Autostart , leider startet mein Python Programm nicht , es wird aber das Python Fenster geöffnet
    aber nicht ausgeführt ! woran kann es noch liegen !

    Raich den 15.07.2019

    • Wolfgang schrieb am 15. Juli 2019:

      Hallo Norbert,
      vielen Dank für Dein positives Feedback. Mein erster Gedanke ist, hast Du den vollständigen und richtigen Pfad zum Skript angegeben?
      Viele Grüße
      Wolfgang

  • Christian54 schrieb am 4. Juli 2019:

    Hallo Wolfgang
    ich habe bislang mein python-Skipt wie in “Autostart eines Python Programms auf dem Raspberry Pi“ beschrieben, gestartet. -Danke
    Jetzt habe ich das neue Image “2019-06-20-raspbian-buster.zip” installiert und jetzt funktioniert es nicht mehr.
    Die *.py-Datei habe ich schon ausführbar gemacht, mit sudo …. habe ich es versucht – ich kann keinen Fehler finden.
    Wenn ich “ps -ax” aufrufe, wird der python-Prozess nicht angezeigt.
    Starte mein Skript über eine SSH-Verbindung, läuft alles prima.

    Was mache ich falsch?

    • Wolfgang schrieb am 14. Juli 2019:

      Hallo,
      persönlich bin ich noch nicht auf “Buster” umgestiegen. Was ich allerdings gelesen habe, die Autostartdatei sollte unter “/etc/xdg/autostart/” abgespeichert werden. Die Erweiterung bleibt wie im eigentlichen Beitrag Autostart eines Python Programm auf dem Raspberry Pi beschrieben “.desktop”.
      Viele Grüße
      Wolfgang

  • Anonym schrieb am 8. Februar 2019:

    Hallo,
    Ich möchte ein Programm für eine Kamera starten lassen.
    Dafür habe ich alle oben genannten Schritte soweit gemacht.

    In diesem Programm wird ein Fenster geöffnet, um das Bild der Kamera anzuzeigen.
    Allerdings funktioniert dies nicht. Ich habe bereits auch schon andere Wege getestet, bis jetzt wurde allerdings höchstens die Kamera ein paar Sekunden gestartet und dann wieder beendet. Wenn ich das Programm so starte funktioniert es ohne Probleme.

    Ich hoffe mir kann schnell jemand helfen.

    • Wolfgang schrieb am 8. Februar 2019:

      Hallo,
      der Beitrag beschreibt den Autostart eines Skriptes für den Betrieb des RasPi ohne Desktop-Modus. Da du ein Fenster mit dem Kamerabild öffnest, gehe ich allerdings von einem Betrieb im Desktop-Modus aus. Vielleicht hilft dir mein Beitrag “Autostart eines Python Programm auf dem Raspberry Pi“.
      Viele Grüße
      Wolfgang

  • Anfänger schrieb am 27. Januar 2019:

    Wenn ich das alles so mache wird die Datei dann ausgeführt als wenn ich in SSH “python test.py” eingebe?
    Ich muss meine Datei normalerweise mit “sudo python3 test.py” starten. Funktioniert das auch mit diese Methode?

    • Wolfgang schrieb am 28. Januar 2019:

      Hallo,
      Deine Vermutung ist richtig. Der Aufruf gleicht der Terminal- bzw. SSH-Eingabe. Wenn Du ein Python 3 Skript verwendest, muss Dein Aufruf entsprechen mit “python3” erfolgen.

      Viele Grüße
      Wolfgang

  • Mirko schrieb am 20. Januar 2019:

    Wie beende ich das geöffnete Programm wieder? Ich kann nichtmals mehr die Konsole öffnen.

    • Wolfgang schrieb am 20. Januar 2019:

      Hallo Mirko,
      hier helfen die normalen Linuxbefehle. Öffne das Terminal (STRG*ALT+T) und lasse Dir mit ps -ax alle Prozesse anzeigen. Über die Prozess-ID (PID) kannst Du mit dem Befehl kill (z.B. kill 1187) das Skript beenden.
      Viele Grüße
      Wolfgang

  • Raul Katos schrieb am 2. Januar 2019:

    Hi Wolfgang,
    eine Frage: muss das py-File mittels chmod +x ausführbar gemacht werden, oder ist das nicht notwendig?
    Danke und Gruß
    Raul

    • Wolfgang schrieb am 2. Januar 2019:

      Hallo Raul,
      wenn Du Dich als User “pi” anmeldest, ist dieser Schritt nicht unbedingt notwendig. Da ich Deinen Anwendungsfall nicht kenne, würde ich aus meiner Erfahrung heraus dies Ausführbarkeit der Datei empfehlen.
      Mit chmod +x machst Du das py-File für alle ausführbar. Ob dies gewünscht ist, kommt auf den Anwendungsfall.
      Viele Grüße
      Wolfgang

  • Marcel schrieb am 8. August 2018:

    Hallo Wolfgang,

    Danke für die Anleitung. Vom Prinzip funktioniert das bei mir auch bis auf eine Kleinigkeit. In meinem Python-Script frage ich die IP-Adresse des Raspberry-PI im Internet mit IPIFY (https://pypi.org/project/ipify) ab. Leider funktioniert das nicht mehr, wenn mein Script über die rc.local gestartet wird. Dann erhalte ich eine Exception von IPIFY vom Typ ConnectionError. Der Raspberry-PI ist aber nach dem Start über das Netzwerk erreichbar. Wenn ich das Script über die Konsole starte funktioniert es wunderbar. Haben sie eine Idee woran das liegt?

    MfG

    • Wolfgang schrieb am 8. August 2018:

      Hallo Marcel,
      für mich hört es sich so an, als wäre der Raspberry noch nicht komplett hochgefahren und hat noch keine Verbindung mit dem Router aufgebaut. An deiner Stelle würde ich in deinem Python-Skript entweder bei Programmstart eine Pause einfügen oder über eine Netzwerkabfrage abwarten, bis die Verbindung zum Router aufgebaut ist.
      Viele Grüße
      Wolfgang

  • Grassator schrieb am 8. September 2017:

    Hallo,

    Ich versuche das nun seit Stunden über Cronjob -e und andere sachen das Programm FreqShow auf einem Raspberry 3 mit einem kleinen 3.5″ Dsiplay automatisch zu starten.
    Nun es Funktioniert nichts, entweder der Raspi hängt sich beim start auf oder er geht nur normal in den Desktop.
    Habe jetzt Ihre Anleitung versucht und es geht immer noch nicht.
    Starten tut das Programm wenn ich am Raspi in der Konsole pi@Piscanner:~/FreqShow $ sudo python freqshow.py
    eingebe.
    Aufgrund der Mobilität sollte keine Tastatur dranhängen sondern das programm direkt starten nach dem reboot.
    Vielleicht wissen Sie ja noch eine Lösung?

    73
    MfG
    Grassator


Schreibe einen Kommentar

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

 

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.

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.

Aktuelles Video auf YouTube

Beschreibung der Verwendung eines TTP223B Touch Sensors am GPIO Port des Raspberry Pi mit Python.