Bac*_*alo 3 crash monitoring windows-10
我正在为自助服务终端创建一个独立的应用程序,该应用程序必须 24 小时 7 小时正常运行。
在应用程序崩溃的极少数情况下,我需要某种方法使其自动重启。我在 Nuc 上运行 Windows 10。
任何 Windows 专家都可以建议实现这一目标的最佳方法吗?
一种解决方案是使用带有无限for循环的批处理文件来在应用程序关闭时自动重新启动应用程序。这里有两种可能性,具体取决于应用程序的设计方式。
如果应用程序在同一进程中启动并运行,您可以使用一个非常简单的批处理文件:
@echo off
:Start
C:\path\to\application.exe
:: Wait 30 seconds before restarting.
TIMEOUT /T 30
GOTO:Start
Run Code Online (Sandbox Code Playgroud)
这将无限运行。任何时候application.exe关闭或崩溃,批处理文件都会重新启动它。
这将不会工作,如果application.exe启动subapp.exe,然后application.exe关闭。在这种情况下,您需要更复杂的东西。
@ECHO off
SET _PollingInterval=30
:BatchStart
C:\path\to\application.exe
:Start
:: Uncomment the following line on versions of Windows prior to Windows 7 and comment out the TIMEOUT line. The PING solution will not be 100% accurate with _PolingInterval.
:: PING 127.0.0.1 -n %_PollingInterval% >nul
TIMEOUT /T %_PollingInterval%
SET PID=
FOR /F "tokens=2 delims= " %%i IN ('TASKLIST ^| FIND /i "subapp.exe"') DO SET PID=%%i
IF [%PID%]==[] (
ECHO Application was not running. Restarting script.
GOTO BatchStart
)
GOTO Start
GOTO:EOF
Run Code Online (Sandbox Code Playgroud)
如果您的应用程序可以有各种进程,那么您可能可以使用类似FINDSTR /i "subapp.exe application.exe"而不是FIND /i "subapp.exe",但这不适用于名称中带有空格的进程,因为FINDSTR使用空格作为分隔符。
为了在这些批处理文件启动后停止它们,请让应用程序保持打开状态并切换到命令提示符。然后使用Ctrl+C并确认您要结束脚本。脚本终止后,关闭应用程序。
进一步阅读:
PINGFIND)^for 循环中的字符是转义字符| 归档时间: |
|
| 查看次数: |
6361 次 |
| 最近记录: |