让windows下服务断开后自动重启(两种方法)

工作中用APMserv做了个小的web网站,当访问量多的时候,apache服务会经常死掉。在网上看了看,也有类似的情况,还有牛人自己写了程序来监控apache,叫apche保姆。关于那个软件我就不多说了,网上有下载的。这里我想说的是,完全没有必要那么麻烦,windows本身就有这个功能,闲话不多说了:

运行里输入services.msc打开windows服务管理。任意打开一个服务的属性,在其中的恢复标签下就有“当N失败后”进行的什么操作,很是方便,具体用法不多说了,太简单了!

当然,用一个简单的批处理脚本也完全可以实现,如下:

@echo off

setlocal EnableDelayedExpansion

:start

net start > a.txt   #查看正在运行的服务,并写入到a.txt文件里

find /I "APMServ-Apache" a.txt >NUL  ##检查想要监控的服务有没有运行。

if %ERRORLEVEL%==0 (echo httprunning) else (net start APMServ-Apache)##返回值“0”说明在a.txt文件里找到了相应的服务,也就是正在运行,否则启动服务。

ping 127.1 -n 4 >NUL   ##利用ping命令每隔一秒执行一次来计时,4代表就是4秒后,也就是每4秒监控一下。

goto start &exit   #转到start部分,重新开始执行。

 

注意:如果系统服务里没有想要的服务,也可以利用“tasklist >a.txt”把进程列表写入文件,再find查找相应的进程名称,下面else后面接想要运行程序的完整路径,如“c:\abc\abc.exe”。

 

 

 

 

 

posted @ 2013-08-24 18:02  [言_午]  阅读(9039)  评论(0编辑  收藏  举报