定时检查服务批处理,发现服务停止立即启动服务

@echo off

echo "check %1." >> log.file 

set srvname=%1
for /f "skip=3 tokens=4" %%i in ('sc query %srvname%') do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="RUNNING" (
    :服务运行正常,返回1.
    echo 1
) else (
    :服务运行异常,返回0
    echo 0
    sc start %srvname%
    echo "%srvname% start." >> log.file  
)

定时检查进程批处理。发现进程不存在立即启动进程。

@echo off

echo "check %1." >> log.file 

set pidname=%1
set batname=%2
for /f %%i in ('tasklist /FI "IMAGENAME eq %pidname%"^| find /C "%pidname%"') do set "zt=%%i" &goto :next

:next
echo %zt%
if /i %zt% gtr 0 (
    :进程运行正常,返回1.
    echo 1
) else (
    :进程运行异常,返回0。立刻启动进程
    echo 0
    call d:
ginx-1.4.7\%batname%
    echo "%pidname% start." >> log.file  
)

以上存为批处理文件。设置计划任务定时执行即可。

原文地址:https://www.cnblogs.com/lidabo/p/9675168.html