【问题标题】:Revive plink service after it dies在它死后恢复 plink 服务
【发布时间】:2017-05-25 13:51:56
【问题描述】:

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

【问题讨论】:

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

标签: shell batch-file putty kill-process plink


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2013-02-19
    • 2013-01-02
    • 2015-04-16
    • 1970-01-01
    相关资源
    最近更新 更多