背景是平台所在的服务器经常因异常原因导致当前机器所在的服务关闭....直接贴代码吧。
**************************************************************************************************
::守护程序-沙箱自动化平台
rem 定义循环间隔时间和监测的服务:
set secs=30
set srvname="firefox.exe"
@echo off
echo.
echo ========================================
echo == 查询沙箱测试平台服务的状态, ==
echo == 每间隔%secs%分种进行一次查询, ==
echo == 如发现其停止,则立即启动。 ==
echo ========================================
echo.
echo 此脚本监测的服务是:%srvname%
echo.
tasklist -v | findstr %srvname% > NUL
if ErrorLevel 1 (
echo "========================================">>E:at empkeepAliveLog.txt
echo %date%+ %time% ">>当前进程不存在" >> E:at empkeepAliveLog.txt
::echo %date%+ %time% >> E:at empkeepAliveLog.txt
echo "开始启动">> E:at empkeepAliveLog.txt
::e:
::cd bat
::app.bat
start "wumin" "C:WindowsSystem32cmd.exe"
echo "执行成功" >> E:at empkeepAliveLog.txt
echo "========================================">>E:at empkeepAliveLog.txt
) else (
echo %date%+ %time% "进程存在">> E:at empkeepAliveLog.txt
)
**************************************************************************************************
通过windows 的任务计划程序进行定时扫描启动即可。
另外,解决问题的时候最好先确认倒是是服务器异常重启还是内存异常等原因导致的程序服务挂掉的,这里可以通过systeminfo 命令来确认,如下图可以确认系统最近一次重启是20190718..
当然如果是系统重启导致的服务down掉,那么我们还可以将对应的程序添加到windows的开机启动项中。
如有更优的方式,欢迎沟通补充。thx!