Python Skript auomatisch mit deamon starten

  • Hallo Leute,

    ich stehe vor einer etwas kniffligen Aufgabe. Ausgangssituation ist die, dass ich ein python Skript habe, welches ich gerne beim boot-Vorgang starten möchte. Dazu kommt noch, dass dieses Skript, sollte es aus irgendeinem Grund heraus abstürtzen, sich automatisch, nach dem kill, neustartet.

    Jetzt stellt sich mir die Frage, ob sich das mit einem deamon über Runlevel 2 in der /etc/rc2.d/ lösen lässt? Oder gibt es hierbei andere/einfacherere Lösungsansätze?

    Würde ich mit demn deamon arbeiten, besteht auch noch eine Frage, denn dieser Vorgang ist ja eigentlich für Dienste gedacht, mein Skript ist ja aber nur ein einfaches Skript Dateiname.py, welches ich mittels python Dateiname.py ausführe.

    Ihr seht, es bestehen einige Unklarheiten und ich hatte gehofft, mir kann hierbei jemand auf die Sprünge helfen. Vielen Dank für jederlei Feedback!

    Gruß
    mobby

  • crontab -e

    @reboot /usr/bin/python /pfad/zum/file.py >/dev/null 2>&1


    Hier noch ein Watchdog zum Starten deines Script.
    z.B. pywatchdog.sh

    Bash
    #!/bin/bash
    TEST=$(ps -A | grep -w script.py)
    
    
    if ! [ -n "$TEST" ] ; then
        /usr/bin/python /pfad/zum/script.py &
        exit
    fi

    Eintragen im Crontab, läuft einmal pro Minute
    crontab -e
    */1 * * * * /pfad/zum/pywatchdog.sh

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Einmal editiert, zuletzt von Der_Imperator (29. April 2014 um 11:14)

  • > Hier noch ein Watchdog zum Starten deines Script.
    Das geht einfacher: wenn ein Prozess einen Childprozess erzeugt, kann er darauf warten bis er stirbt.

    Wenn er stirbt, wird er neu gestartet.

    - - - -

    FRUEHER konnte man seine Prozesse auch in die inittab eintragen und mit respawn versehen,
    dann ging das sogar automatisch.

    Ob das jetzt noch so ueblich ist, weiss ich gar nicht

  • Es spricht aber eigentlich nichts dagegen dein Skript als Runlevelskript zu starten. Via cron ist es einfacher. Wenn es aber einen Grund gibt warum dein Skript in einem bestimmten Runlevel gestartet werden soll dann halt mit rc-Skript. Was aber scheinbar unter Raspbian (debian ?) nicht mehr allzu wichtig ist, wenn eh nur Runlevel 2 für alles gibt.

    Tell, jo früher gabs das alles auch wurden früher die runlevel 1-5 voll genutzt.... heute scheint das nur noch als Relikte mit gezogen zu werden *schnief*

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.


  • Wozu noch einen @reboot eintrag wenn man den vorgeschlagenen Watchdog nutzt?

    Weil man sonst eine Minute warten muß bis das Script startet ?
    Aber im Prinzip hast du recht.

    Zitat


    FRUEHER konnte man seine Prozesse auch in die inittab eintragen und mit respawn versehen,
    dann ging das sogar automatisch.


    Mach ich heute auch so, aber der fünfzeiler ist schneller und einfacher als ein init-script zu erlären.
    Und so einen Aufwand für ein py ?

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

    Einmal editiert, zuletzt von Der_Imperator (29. April 2014 um 13:08)

Jetzt mitmachen!

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