Python Script automatisch starten beim booten

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Ich habe einen A/D-Wandler (MCP3208) für diesen A/D-Wandler habe ich 4 Python Skripte die den A/D-Wandler auslesen und die Werte abspeichern.

    Das auslesen starte ich jetzt immer mit 4 Terminal Befehle, das möchte ich jetzt vermeiden und so hingekommen, das die Skripte beim booten automatisch ausgeführt werden.
    Wie geht das ?

  • geht so:

    sudo nano /etc/rc.local
    in die Datei ein unten stehenden Befehl eintragen den Pfad ändern wo die zu startende Python Datei liegt und die Python Datei selber nochmals angeben.
    sleep 15 bedeutet das nach dem Booten vom Raspberry Pi 15 Sekunden gewartet wird, bis das Script gestartet wird. Am besten gehts dann noch hin und setzt ein GPIO pin als OUTPUT und schließ daran eine LED an, binde das mit in dein Script ein somit weist du dann immer wenn das Script gestartet wurde und es aktuell läuft.
    Das exit 0 sollte in der rc.local schon vorhanden sein. Das muss dann nicht nochmal eingetragen werden. Wenn du weitere Dateien darüber starten willst solltest du nach jedem Befehl das & Zeichen setzen.

    Code
    sudo nano /etc/rc.local
    Code
    /bin/sleep 15 && cd /home/pi/Downloads/robot-rover/raspirobotboard-master/examples/ && sudo python rover_basic_V_1_1.py &
    exit 0

    MFG

    Zappelmann

  • Zappelmann: Das wurde bereits beantwortet und wird über die besagte Forumsuche mehr als ausführlich beschrieben (4 verschiedene Möglichkeiten)

    Davon abgesehen ist dein sleep 15 in der rc.local deplatziert und realy-dirty, da das den Bootvorgang völlig unnötig um 15 Sekunden ausbremst ... und erst vorher in ein Verzeichnis wechseln muss man nicht, man kann Scripts auch mit Angabe des vollständigen Pfads ausführen..

  • Hallo zusammen,

    habe hier auch Probleme meine python-Scripte automatisch zu starten, von Hand klappt es.


    /etc/rc.local


    Die Scripte werden gestartet, sind in der Prozeßliste aufgeführt, aber machen nicht das, was sie sollen.
    Hat jemand einen Tipp?

    Bernd

  • /etc/rc.local wird bereits als root ausgeführt, also ist sudo überflüssig

    in /etc/rc.local ein sleep einzubauen ist keine gute Idee da dann der Bootvorgang also alles für die Zeit angehalten wird.

    Aber auch hier fehlen die vollständigen Pfade zum python Binary oder den anderen Befehlen.

    Ich versteh nicht wieso Ihr/Du nicht die vorherigen Beiträge lest in dessen Threads ihr einfach was rein postet?


    Erstell dir ein bash script in dem alle relevanten Befehle drin stehen, wie zum Beispiel:

    /home/pi/Autostart.sh

    ..Wenn es denn unbedingt sein muss können hier sleep's eingefügt werden ohne den Bootvorgang zu beeinträchtigen..


    Und die /etc/rc.local sollte dann nur noch so aussehen:

  • Hallo zusammen,
    habe auch Probleme mit dem Autostart.
    habe bereits die Variante probiert mein Python Programm über crontb zu booten und über rc.local beides ohne Erfolg. Kann mir jemand helfen?? In meinem Programm wird ein Bluetooth socket erstellt das auf eine Verbindung wartet und bei Verbindung auf Befehl die Temperatur vom Sensor DS18B20 zurück gibt. Nun das Programm funktioniert wenn ich es manuell Aufrufe, jedoch habe ich es noch nicht geschafft es zum Autostart hinzuzufügen.

    Autostart mit crontab :

    Code
    crontab -e


    Dann im Crontab folgendes hinzugefügt:

    Code
    @reboot sudo python /home/pi/BlSensor1.py &

    Bei einem reboot passiert einfach nichts bzw. ich versuche mich via Bluetooth zu verbinden und es geht nicht, daraus schließe ich das mein Programm nicht läuft.

    Autostart mit rc.local:

    Code
    sudo nano /etc/rc.local


    Dann vor exit 0 folgendes eingefügt:

    Code
    python /home/pi/BlSensor1.py

    hier dasselbe Ergebniss wie mit dem crontab.

    ich habe es auch schon mit einer Bash Datei probiert, die mein python programm startet. Die Bashdatei wird in rc.local aufgerufen. Aber auch hier kein Ergebniss.

  • 1. Zwar hat dein Anliegen auch etwas mit diesem Thema zu tun, es ist aber ein fremder Thread, nicht deiner. Somit könnte deine Frage nicht nur untergehen sondern ist auch etwas unhöflich dem Ersteller gegenüber. Also bitte das nächste mal einen eigenen Thread erstellen.

    2. Man sollte stets den vollständigen Pfad zu Programmen verwenden. Auch für sudo oder python. Egal ob für crontab oder /etc/rc.local

    3. In crontab trägt man kein " & " ein wenn das Script permanent laufen soll. Stattdessen wäre am Anfang der Befehlszeile ein "nohup" besser.

    3.1 In /etc/rc.local muss allerdings ein " & " am Ende eingefügt werden - das habe ich 2 Posts über deinem aber auch schon beschrieben/begründet.

    4. Wenn in crontab "sudo" eingetragen wird kann man auch gleich "sudo crontab -e" verwenden und den zusätzlichen sudo Aufruf innerhalb des Crontabeintrags weglassen.

    5. Stets das jeweilige Script mit posten damit auch besser geholfen werden kann.

  • hi war mir nicht sicher ob ich einen eigenen Thread öffnen soll da es schon soviel zu dem Thema gibt. Nun ja nun weiß ich besser bescheid und habe wie gewünscht hierzu einen eigenen Thread geöffnet. vielen Dank für die Info´s

    Neuer Thread

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!