Shell 在plink服务失效后恢复该服务

Shell 在plink服务失效后恢复该服务,shell,batch-file,putty,kill-process,plink,Shell,Batch File,Putty,Kill Process,Plink,我正在尝试创建一个bat或shell脚本,让我检查我的plink连接是否中断或没有响应,然后关闭服务并重新启动。有可能吗 我和我的朋友遇到的问题是,我们似乎无法检查进程是否在我们身上停止,现在我们的解决方案是使用超时。 这有点浪费时间,因为无论谁知道连接会死掉并保持死掉多久,或者它可能会被杀死,即使它很好 :LOOP START CMD /C "title connection && plink sap" > data timeout /t 30 START CMD /C

我正在尝试创建一个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

我们找到了一个局部解决方案,解决了每次循环时必须终止任务的问题。 它检查进程是否有响应,它是否被终止,并且每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)

您应该使用PowerShell和一些SSH库(如SSH.NET)。这超出了批处理文件的用途。