Ich habe mehrere PCs/Renderclients auf denen nur Windows8 64Bit und ein Programm läuft, welches bei Bedarf Bilder berechnen soll. Das Programm stürzt nur leider gerne mal ab. Entweder das Programm verschwindet einfach oder es wird eine Fehlermeldung (Eingabefenster) ausgegeben welches man mit OK bestätigen muss, damit man das Programm manuell Neustarten kann.
Was mir derzeit also enorm helfen würde wäre ein Skript, welches prüft, ob ein Prozess geöffnet ist und ob das Fenster im Prozess "Plugin Error" vorhanden ist.
Wenn Prozess nicht vorhanden: Programm starten.
Wenn Fenster "Plugin Error" vorhanden: Programm beenden und neu starten.
Überprüfen muss das Skript den Prozess nur einmal alle ca. 2-3 Minuten mal.
Wie würdet ihr das am besten lösen? Vor allem das nicht irgendwann der Speicher der Überprüfung vollläuft oder so? Das Skript soll schon mehrere Monate durchlaufen, da die Renderclients in der Regel nicht neu gestartet werden müssen. Könnte man zwar so machen, wenn der Prozess eben nicht mehr läuft oder reagiert - ist aber natürlich nicht die feinste Lösung.
Angefangen hätte ich jetzt so:
Code: Alles auswählen
import time
TRCpath = "C:\\Program Files\\......"
TRCexe = "TeamRenderClient.exe"
TRCerror = "Plugin Error"
while True:
#check if TRCexe isn't running
#open TRCpath/TRCexe
time.sleep(10) # let TRC some time to open
#check if window TRCerror in TRCexe is open
#restart TRCexe
time.sleep(170)