Zulassen, dass sich ein Prozess auf dem Bildschirm neu startet

Zulassen, dass sich ein Prozess auf dem Bildschirm neu startet

Das System ist Debian Whezy x64. Ich verwende derzeit screen, um Programme als Benutzer statt als Root zu starten. Es sieht so aus: In /etc/rc.local rufe ich auf

su -c "/home/user/scripts/startup" user

Dann rufe ich in /home/user/scripts/startup einige Python-Programme wie folgt auf:

screen -dmS my_program python /home/user/my_program.py 

Sie starten alle problemlos. Das Problem ist, dass diese Programme dazu neigen, sich etwa jede Woche selbst zu aktualisieren. Wenn das Programm aktualisiert wird, versucht es, sich selbst neu zu starten. Beim Neustart des Programms wird die Bildschirmsitzung beendet und das Programm startet nicht erneut. Nach einigen Tagen merke ich also, dass das Programm nicht funktioniert und muss es manuell neu starten.

Kann ich etwas tun, damit das Programm nach einem Programmneustart wieder von selbst startet?

Bearbeiten: Ich habe etwas über den „Zombiemodus“ des Bildschirms gelesen, der es ihm ermöglicht, aktiv zu bleiben, aber ich weiß nicht, wie ich ihn beim Booten aufrufen kann.

Danke

Antwort1

Erstellen Sie ein Skript, das in einer Endlosschleife ausgeführt wird und die Ausführung des Programms überwacht.

#!/bin/bash
while true; do ps aux | grep -v grep | grep -q <program> || <start_program>; sleep 5; done

Starten Sie das Skript auf dem Bildschirm.

verwandte Informationen