windows下bat批處理實現守護程序

2021-09-06 23:11:43 字數 1290 閱讀 1099

最近幾天加班加瘋掉了,天天晚上沒法睡。開發部的乙個核心程式總是會自己宕機,然後需要手工去起,而這個服務的安全級別又很高,只有我可以操作,搞得我晚上老沒法睡,昨晚實在受不了了,想起以前在hp-ux下寫的shell守護程序,這回搞個windows下的bat版守護程式吧,當時晚上思路已經很遲鈍了,就叫了個兄弟讓他寫了,上去後執行效果不錯,至少昨晚我安心睡了7小時。

早上來把程式改完善一些,增加了記錄等功能。

實現:檢查是否有notepad,要用的話就算成自己的程序名,如果程序宕了就過會自動重啟(會在當前目錄下生成乙個start.bat)

@echo

offset _task=notepad.exe

set _svr=c:\windows\notepad.exe

set _des=start.bat

:checkstart

for /f "tokens=5" %%n in ('qprocess.exe ^| find "%_task%" ') do (

if %%n==%_task% (goto checkag) else

goto

startsvr)

:startsvr

echo %time

% echo

********程式開始啟動********

echo 程式重新啟動於 %time% ,請檢查系統日誌 >> restart_service.txt

echo

start %_svr% >%_des%

echo

exit >>%_des%

start

%_des%

set/p=.for /l %%i in (1 1 10) do

set /p a=.nul

echo .

echo wscript.sleep wscript.arguments(0) >%tmp%\delay.vbs

cscript //b //nologo %tmp%\delay.vbs 10000

del %_des% /q

echo

********程式啟動完成********

goto

checkstart

:checkag

echo %time% 程式執行正常,10秒後繼續檢查..

echo wscript.sleep wscript.arguments(0) >%tmp%\delay.vbs

cscript //b //nologo %tmp%\delay.vbs 10000

goto checkstart

Windows批處理BAT指令碼

2 echo和 字元放在命令前將關閉命令回顯,無論是否為開啟狀態。開啟或關閉回顯 echo 輸出資訊 echo string 3 pause 玩遊戲的都知道,暫停的意思。顯示其他提示語 echo string pause nul 4 errorlevel 返回程式碼 echo errorlevel ...

Windows批處理功能 bat

什麼是批處理?常見的.bat檔案就是批處理檔案。它是一種無格式檔案。簡單理解 批處理的作用就是自動地連續執行多條命令,檔案內容就是一條一條的命令。功能和組成 在命令提示符下輸入批處理檔案的名稱,或者雙擊該批處理檔案,系統會呼叫cmd.exe程式,按照該檔案中各個命令出現順序來逐個執行它們。執行方式 ...

Windows批處理程式bat

echo off 關閉回顯,否則指令碼中的命令都會輸出,關閉後只顯示結果。setlocal enabledelayedexpansion 在for迴圈中變數擴充套件時需要用到 copy y mstsc.cmd systemroot 將檔案複製到c windows目錄下面 regedit.exe s ...