日期:2014-05-17  浏览次数:20820 次

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