2017-05-25 1 views
0

Ich versuche, ein Fledermaus oder Shell-Skript zu erstellen, mit dem ich überprüfen kann, ob meine Plink-Verbindung stirbt oder nicht mehr reagiert und dann den Dienst beenden und neu starten. So möglich?Revive Plink-Service, nachdem es stirbt

Das Problem, das mein und mein Kumpel trafen, ist, dass wir nicht scheinen können, um zu überprüfen, ob der Prozess bei uns gestorben ist oder nicht, und jetzt ist unsere Lösung, eine Zeitüberschreitung zu verwenden. das ist ein wenig Zeitverschwendung, da die Verbindung sterben könnte und für jeden, der weiß, wie lange tot ist, oder es könnte getötet werden, selbst wenn es völlig in Ordnung ist.

:LOOP 
START CMD /C "title connection && plink sap" > data 
timeout /t 30 
START CMD /C "taskkill /fi "Status eq RUNNING" /fi "WindowTitle eq connection*" /im "cmd.exe && exit" 
timeout /t 5 
GOTO LOOP 
+0

Sie sollten (wie SSH.NET) verwenden Powershell und einige SSH-Bibliothek durchgeführt wird. Dies ist jenseits dessen, wofür Batch-Dateien gut sind. –

Antwort

0

Wir fanden eine Teillösung, die die Aufgabe jedes Mal, wenn wir durch die Schleife gehen zu töten löst haben. Es prüft, ob der Prozess reagiert, wird es getötet und das alle 10 Sekunden

START CMD /C "title connectionSAPB1PLINK && plink sap" 
:LOOP 
timeout /t 10 
taskkill /f /fi "STATUS eq NOT RESPONDING" /fi "WindowTitle eq connectionSAPB1PLINK*" 
tasklist /fi "WindowTitle eq connectionSAPB1PLINK*" /FO "csv" | find /i "cmd.exe" > nul 2>&1 
echo "%errorlevel%" 
if "%errorlevel%" == "0" (GOTO LOOP) else (START CMD /C "title connectionSAPB1PLINK && plink sap" && tasklist /v && GOTO LOOP)