ich habe für meine Zwecke einen kleinen Watchdog geschrieben. Dieser läuft in einer Endlosschleife und prüft regelmäßig ob ein Logfile noch beschrieben wird oder nicht.
Falls die Logdatei älter als ein definiertes Intervall ist, so wird die zugehörige ProzessID gesucht um das Programm zu killen und erneut zu starten. Die ProzessID existiert noch, da der Server manchmal klemmt und stehen bleibt.
Die ProzessID ermittle ich mit einem Linux Befehl:
Code: Alles auswählen
command = "ps -aef | grep /../../server.py |grep -v grep |awk '{print $2}' | xargs"
p = sub.Popen([command], shell=True, stdout=sub.PIPE,stderr=sub.PIPE)
pid = p.communicate()
Bis hierher ist alles gut, aber:
Jetzt soll der Server aus diesem watchdog Skript heraus neu gestartet werden. Ich bekomme den Server aber nicht gestartet, ohne dass die Ausgaben des Servers dann in meinem Watchdog erscheinen. Welches Modul wird benötigt um das zu bewerkstelligen?
Bin für Hinweise dankbar.
Grüße Kreavis