專案上有幾個程式在掛windwos下面的,近期頻繁出現程序掛掉的狀況,於是寫了乙個守護程序的指令碼。順便記錄一下
@echo off
title sunloginkeeper
cls::設定待執行軟體完整路徑
"c:\imuserver\imuserver.exe"
::設定時間間隔,單位:秒
set _interval=10
::自賦值引數
''set _processname=
''set _processnameext=
''if
==''
(goto end)
for %%a indo(
set _processname=%%~na
set _processnameext=%%~nxa
)::echo %_processname%
::echo %_processnameext%
goto checkstart
:checkstart
::檢查程序是否還在
for /f "tokens=1" %%n in
('tasklist.exe ^| find /i "%_processnameext%" ')do
(if'%%n'
=='%_processnameext%'
(goto checkend))
::重新啟動程序
::此處執行命令
popd
:checkend
::迴圈檢查
choice /t %_interval% /d y /n >nul
goto checkstart
:end
echo end.
效果演示:
其實顯示了重啟時間,你可以當作日誌來看。日誌存放在c:\imuserver\restart_log.txt
下
@echo off
set program=
"redis-server.exe"
tasklist -v | findstr %program%
> nul
if errorlevel 1
( echo "程序不存在"
>> d:\server\redis_log\log.txt
echo %date%
+%time%
>> d:\server\redis_log\log.txt
d:cd server\redis
redis-server.exe redis.conf
)else
( echo "程序存在"
)
:loop
ping -n 5
127.0
.0.1
tasklist|find /i 「nginx.exe」
if%errorlevel%==1
(start 「nginx.exe」
)goto
:loop
BAT批處理指令碼
echo off 與 echo on 前者為關閉回顯,後者為開啟回顯 當不想批處理檔案中的命令一行一行在dos中顯示出來時 因為全部顯示出來的話看起來會變得很雜亂 可以使用 echo off,將其放於程式的最上方就行了。先不把回顯關閉,執行乙個小的bat檔案,為 echo off title a c...
Bat批處理指令碼
bat for迴圈 在cmd視窗中 for variable in set do command command parameters 在批處理檔案中 for variable in set do command command parameters 想知道當前目錄下都有哪些檔案嗎?請用下面的 ec...
bat批處理指令碼程式設計
1 宣告變數 注意 前後不要留空格。隨便說一下,在bat中,連續兩個冒號表示注釋 set var1 test 如果要引用這個變數的話,可以這樣寫 var1 2 echo off on echo off 表示關閉echo列印命令 echo on表示開啟echo列印命令 舉例 echo hello wo...