我正在尝试创建一个bat或shell脚本,让我检查我的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)
我们找到了一个部分解决方案,解决了每次循环时必须终止任务的问题。 它检查进程是否响应,它被杀死并且每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)