mehrere Python script autostart

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    Ich versuche mehrere Python scripts über den Autostart (rc.local) mit zu starten.

    Diese Scripts sind ein shutdown-button und ein reset-button.

    Wenn ich diese scripts einzeln starte und teste machen sie was sie sollen, reboot oder shutdown, sobald die jeweilige taste gedrückt wird(gpio).

    Auch der Autostart funktioniert einzeln mit folgenden inhalt in der rc.local

    (sleep 10;python /home/pi/RetroPie/retropiemenu/Microplay/mpscript_reboot.py) &

    sobald ich den zweiten button im autostart hinzufüge rebootet mir das system in schleife, also er führt den reboot button aus obwohl ich ihn nicht drücke.

    hat jemand eine idee wo hier der fehler begraben sein könnte?


    liebe grüße Fredy

  • Hallo und Willkommen im Forum.

    Hast du das selbst geschrieben? (finde das verwendete GPIO Modul sehr untyptisch)

    Versuch mal beide Skripte zu vereinen

    Mach den ausführenden Befehl unscharf und lass dir Printausgaben in eine Datei schreiben und sieh was passiert

  • Auch der Autostart funktioniert einzeln mit folgenden inhalt in der rc.local

    (sleep 10;python /home/pi/RetroPie/retropiemenu/Microplay/mpscript_reboot.py) &

    sobald ich den zweiten button im autostart hinzufüge rebootet mir das system in schleife, also er führt den reboot button aus obwohl ich ihn nicht drücke.

    Schreib mal in die rc.local vot exit 0

    sleep 10

    /usr/bin/python /home/pi/RetroPie/retropiemenu/Microplay/mpscript_reboot.py &

    /usr/bin/python /home/pi/RetroPie/retropiemenu/Microplay/mpscript_shutdown.py &

    Wenn das nicht hilft, solltest Du in den Logfiles den Verursacher (shell Script, oder Python Script) suchen. Das doppelte Laden von subprozess ist zur Fehlerbeurteilung auch nicht gerade hilfreich.

    Besser wäre natürlich, wenn Du aus beiden Schnipsels ein einziges Script baust.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • danke für die vielen antworten

    es hat tatsächlich geholfen beide buttons in ein script gemeinsam zu geben, jetzt funktioniert es.... wieso die sich nicht einzeln ausführen lassen ist komisch aber jetzt geht es

    die gpio ports sind untypisch weil das script auf einer H3 Plattform(Orange/Banana Pi) läuft und nicht auf meinen RPI3

    des weiteren führe ich das script jetzt als crontab aus nicht in der rc.local

    wobei ich in rc.local getestet habe und dort funktioniert es jetzt auch!

    finde die Lösung mit crontab sauberer

    danke euch :thumbup:

    RPI3, Orange PI, Odroid XU4

  • Hallo,

    Zitat

    wusste nicht das die befehle auf python2 basis sind

    Anhand der She-Bang Zeie sieht man, dass das Python 2 ist.

    Ich denke, dass das Skript unverändert unter Python 3 läuft, WENN es das GPIO-Modul für Python 3 gibt. Von ich mal ausgehe. Du musst halt das GPIO Modul nochmal für Python 3 installieren. Das ist parallel zum Python 2 Modul problemlos möglich.

    Noch was zum Skript:

    • Die Variable `value_out` wird definiert, aber nirgends benutzt.
    • Die Funktion `run_cmd` gibt einen Wert zurück, der wird aber nirgends verwendet.
    • Der Ausdruck hinter den `if` Statements muss nicht geklammert werden.
    • Kommentare sollen _zusätzlich_ Informationen enthalten und nicht das beschreiben, was aus dem Code so wie so offensichtlich ist.
    • Kommentarzeilen werden mit einer # eingeleitet, nicht in 3-fache " gesetzt.

    Gruß, noisefloor

  • sry

    hier der code einfach leserlich :)

    run_cmd wird verwendet für den shutdown und reboot, siehe funktion run cmd

    das script hatte ursprünglich noch eine led mit reinprogrammiert das value_out muss ich noch herausnehmen

    die infos in den kommentaren waren schon wie gesagt code ist kopiert nicht selbst geschrieben nur angepasst

    kommentare habe ich angepasst auf# danke

    RPI3, Orange PI, Odroid XU4

Jetzt mitmachen!

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