win2003系统,服务经常自动停止。有什么办法能监测到他停止,如果停止,就自动重新启动吗?
win2003系统,
某个服务经常自动停止。
有什么办法能监测到他停止,如果停止,就自动重新启动吗?
------解决方案--------------------可编辑一批处理文件,放入启动项中,内容如下:
@echo off
::rem 批处理中查询服务的状态,如发现其停止,则立即启动,否则始终查询
:dodo
(sc query ASDR|find /i "STOPPED" >NUL 2>NUL)&&(goto okok)||(goto dodo)
:okok
sc config ASDR start= AUTO >NUL 2>NUL
sc start ASDR >NUL 2>NUL
------解决方案--------------------rem 也学着用基本的命令写了个,供楼主参考。比如监控打印服务:xxx.bat "print spooler" 即可
rem 不带参数会直接结束
@echo off
if %1. == . goto end
:chkit
set svrst=0
for /F "tokens=1* delims= " %%a in ('net start') do if /I "%%a %%b" == %1 set svrst=1
if %svrst% == 0 net start %1
set svrst=
rem 下面的命令用于延时,否则可能会导致cpu单个核心满载。
ping -n 4 127.0.0.1 > nul
goto chkit
:end