python script automatisch bei start ausführen

  • Hallo liebes Forum,

    ... ich hab auf meinem Pi2 osmc laufen und mir eulich das Pimoroni Blinkt! Modul gekauft.

    Ich hab es geschafft die Beispielprogramme zu installieren und auszuführen.

    wenn ich mich über SSH mit dem PI verbinde, kann ich via:

    Code
    cd /home/osmc/Pimoroni/blinkt/examples
    sudo python rainbow.py

    das Modul ansteuern.

    Jetzt möchte ich das Ganze aber automatisch bei Bootvorgang ausführen.

    Ich hab versucht das Script ausführbar zu machen :

    Code
    sudo chmod +x /home/osmc/Pimoroni/blinkt/examples/rainbow.py

    und der rc.local folgende zeile hinzugefügt:

    Code
    python /home/osmc/Pimoroni/blinkt/examples/rainbow.py &

    aber ich bekomme es nicht hin das rainbow.py automatisch beim bootvorgang ausgeführt wird.

    kann mir jemand sagen was ich falsch mache ?

  • Danke ihr zwei, wie sähe das aus, wenn ich für python (in der rc.local ?) auch den absoluten pfad angebe ?

    (und ja, steht vor der exit zeile)


    für den "shebang" musste ich dann rainbow.py mit dem nano editor (mit dem ich auch in der rc.local rumpfusche) ändern, oder ?

  • ok, in der rc.local steht jetzt:

    Code
    /usr/bin/python /home/osmc/Pimorononi/blinkt/examples/rainbow.py &
    
    exit 0

    in dem script rainbow.py ist die erste zeile :

    Code
    #!/usr/bin/env python

    aber das script startet immer noch nicht. ist

    Code
    sudo chmod +x /home/osmc/Pimoroni/blinkt/examples/rainbow.py

    korrekt um das script ausführbar zu machen ?

    • Offizieller Beitrag

    Wenn du den Interpreter mit übergibst, bzw es durch diesen direkt aufrufen lässt, brauchst du es auch nicht ausführbar machen, schaden tut es aber nix.

    Mach mal folgendes

    Code
    /usr/bin/python /home/osmc/Pimorononi/blinkt/examples/rainbow.py >> /home/osmc/rainbow.log &

    Schau anschliessend ob das logfile angelegt wurde und ob was drin steht.

  • Code
    osmc@osmc:~$ ls -a
    .   .bash_history  .bashrc  .profile  Addons  Music     Pimoroni  rainbow.log
    ..  .bash_logout   .kodi    .smb      Movies  Pictures  TV Shows

    logfile ist da, aber leer wenn ich es mit nano öffne

    #!/usr/bin/python2.7

    hab ich in dem script geändert

    aber läuft leider immer noch nicht

    Einmal editiert, zuletzt von enshiro (18. November 2017 um 21:41)

  • Den Shebang brauchst du ja auch nur, wenn du nicht explizit dem Python-Binary deine Datei als Argument übergibst, was du ja tust. Entweder oder.

    Als weitere Test fällt mir ein, du könntest als erste Aktion im Script eine Datei erstellen und schauen, ob die nach dem Start irgendwann existiert. Wenn nicht, wird das Script tatsächlich nicht aufgerufen. Wenn doch, stirbt er später im Script.

  • stimmt, da hab ich nicht aufgepasst und den text einfach aus dem browser kopiert. wenn ich

    /usr/bin/python /home/osmc/Pimoroni/blinkt/examples/rainbow.py
    eingebe, folgt darauf:

    wie schon erwähnt: wenn ich in der console einfach

    Code
    cd /home/osmc/Pimoroni/blinkt/examples
    sudo python rainbow.py

    eingebe, läuft das script ja auch sauber, inklusive bunt blinkender LED'S am Blinkt!-Modul

  • Nein das ist nicht notwendig. Datei /etc/rc.local wird mit root-Rechten ausgeführt. Alles was in /etc/rc.local gestartet wird läuft ebenfalls unter root-Rechten. Aber <full path> ist hilfreich, siehe wiki.

    Wenn du als 'osmc' eingeloggt bist, kannst Du mit z.B. exec sudo /home/osmc/Pimoroni/blinkt/examples/rainbow.py das Skript ausführen (Bedingung: x Rechte und shebang).

    Hier der Link wiki zum Autostart mit osmc.

    Gruß kle

Jetzt mitmachen!

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