sicher eine enfache frage aber irgendwie finde ich nicht die passenden Antwort.
Ich habe ein script (monitor.sh), welches ein zweites script (test.py) starten und überwachen soll. Das funktioniert auch ganz gut. wenn ich das zu überwachende script kille, dann startet monitor.sh das script test.py erneut.
Nun möchte ich im test.py allerdings einen if Fall einbauen und das Programm stoppen. Hintergrund: manchmal hängt sich der Com Port auf und nur durch einen restart des Programmes test.py bekomme ich wieder anständige Werte. Allerdings wird durch exit() und quit() auch das monitor.sh script beendet. Wie kann ich damit umgehen und NUR das test.py beenden?
monitor.sh
Code: Alles auswählen
#!/bin/bash
until /test.py; do
echo "'modbus6' crashed with exit code $?. Restarting..." >&2
sleep 1
done
test.py
Code: Alles auswählen
if (list[1] == -99999) or (list[1] == 99999):
print "Bus error detected. Program terminated... "
time.sleep(1)
exit()
Ich hoffe, mir kann jemand zu diesem Thema helfen.
Gruß
Frannek