標籤:Windows 進程守護 監測進程 防止程式關閉
公司有台Windows server 2003,最近做了晚上維護重啟計劃,server有兩個承載業務,這兩套軟體有做開機自動啟動,但是經常出現開機不啟動或是自動崩掉現在,為解決這問題做了個批次檔來實現時時監控
利用二種方法實現,都是bat執行檔案
1、直接檢測一次,沒有運行則啟動,有運行則退出!(這裡拿百度雲端硬碟來測試即baidunetdisk.exe)
tasklist /nh|find /i "baidunetdisk.exe" ---------------------------------要運行軟體進程名稱
If ERRORLEVEL 1 (start D:\Users\Administrator\AppData\Roaming\baidu\BaiduNetdisk\baidunetdisk.exe) else (exit) ----------------------------------------------------------沒有這條進程則執行軟體目錄及執行檔案,否則退出
2、一直線上監測,只要進程斷開或是未運行都會自動開啟,利用死迴圈實現
@echo off
:RESTART
echo ############################時時監控,請勿關閉!#########################
tasklist /FI "username eq administrator" | find /C "baidunetdisk.exe" > baiduyunpan.txt ------baidunetdisk.exe是要運行軟體進程名稱
set /p num= < baiduyunpan.txt ------------------baiduyunpan.txt運行輸出文檔,多進程temp.txt全文名稱要都修改
del /F baiduyunpan.txt
echo %num%
if "%num%" == "0" start /D "D:\Users\Administrator\AppData\Roaming\baidu\BaiduNetdisk" baidunetdisk.exe --------------------軟體存放目錄+執行檔案
ping -n 10 -w 2000 127.0.0.1 >baiduyunpan.txt -----------這裡是利用PING來解決停止時間
del /F baiduyunpan.txt
goto RESTART
2的擴充:這樣執行會顯示CMD.EXE視窗,為了掩藏,可以利用一句簡單VB語句來隱藏cmd視窗,可以在進程裡看得到一個cmd運行進程
步驟:將第2種.bat檔案寫好,並在相同檔案夾下建立一個XX.vbs檔案,並編輯
CreateObject("WScript.shell").Run"cmd /c baiduyunpan.bat",0 ---------------------baiduyunpan.bat檔案的全名稱
完成後直接執行XX.vbs,發現沒有cmd視窗,在進程中會發現多了個cmd視窗進程
做完這些,再加入定期維護之中,在server重啟之後再運行,加上雙保險!
windows下批處理實現進程監測,防止進程自動關閉