Sid*_*Sid 10 windows automation batch windows-xp process-monitoring
我有一个服务器应用程序,我想在计算机运行时运行它,通常情况就是这样,除非有时我会发现它自己关闭了。
是否有我可以运行的 bat 或脚本来监视应用程序并在它关闭时重新启动它?
sgm*_*ore 12
这并不总是有效(这有点取决于程序如何加载自身),但通常您可以创建一个这样的批处理文件:
@Echo off
:Start
NotePad
echo Program terminated at %Date% %Time% with Error %ErrorLevel% >> c:\logs\program.log
echo Press Ctrl-C if you don't want to restart automatically
ping -n 10 localhost
goto Start
Run Code Online (Sandbox Code Playgroud)
我以记事本为例。
线条
echo Press Ctrl-C if you don't want to restart automatically
ping -n 10 localhost
Run Code Online (Sandbox Code Playgroud)
只是一个延迟(10 秒),让用户有机会在它再次启动之前中止该过程。
线
echo Program terminated at %Date% %Time% with Error %ErrorLevel% >> c:\logs\program.log
Run Code Online (Sandbox Code Playgroud)
不需要,但每次程序关闭时都会记录到文件中,因此诊断问题可能很有用 ErrorLevel 可能不会告诉您太多信息,但是如果程序正常关闭,则应该返回 0,而一个非-如果没有,则为零消息
请注意,您提到您的程序如果已经运行则不会执行任何操作。这通常意味着应用程序启动,检测到另一个副本已经在运行并立即关闭。如果是这种情况,并且您的程序在您启动此批处理文件之前正在运行,则批处理将循环并尝试每十秒启动您的程序。
根据上面的答案,我建议您将该命令放入批处理文件中,然后将该批处理文件设置为每分钟作为计划任务运行。实际上没有与此相关的开销,并且它可以确保您的流程得到说明,无论您是否意识到它已停止。
| 归档时间: |
|
| 查看次数: |
32616 次 |
| 最近记录: |