2017-05-25 11 views
0

私のPlink接続が消滅したか応答がなくなったかどうかを確認し、サービスを終了して再度起動するためのバットまたはシェルスクリプトを作成しようとしています。それは可能ですか?死んだ後のplinkサービスの復活

私と私のバディが遭遇した問題は、プロセスが私たちの上で死んだかどうかを確認することができないということです。そして今私たちの解決策はタイムアウトを使用することです。 これは、接続が死ぬことができ、どれくらいの時間を知っていても、それが完全にうまくいっても殺される可能性があるため、これは時間の無駄です。

: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

に行われるチェックされます。これは、バッチファイルがうまくいくものを超えています。 –

答えて

0

ループを通過するたびにタスクを終了する必要があるという部分的な解決策が見つかりました。 これは、プロセスが応答している場合、それは殺され、これはあなたがPowerShellと(SSH.NETのような)いくつかのSSHライブラリを使用する必要があり、10秒ごとに

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) 
関連する問題