工作中用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”。