之前遇到些windows服务程序运行不稳定导致业务请求异常,又没有时间及时修正的时候,如果业务量不大,且重启能缓解相关问题的话,可以写一个批处理的脚本用来自动重启相关程序,保证服务程序的可用性。
脚本下载:
https://download.youkuaiyun.com/download/usoa/88213696
@echo off
rem 获取命令行参数个数
set argC=0
for %%x in (%*) do Set /A argC+=1
rem echo %argC%
rem 参数小于3个则显示帮助
if %argC% lss 3 goto help
:loop
for /f %%i in ('tasklist ^|find /i /c %1') do set rc=%%i
rem debug echo %rc%
rem 程序已运行则kill
if %rc% leq 0 goto runcmd
taskkill /f /t /im %1
:runcmd
start "" /min "%2"
rem 延时
timeout /t %3
goto loop
:help
echo Help:
echo 定时重启指定程序
echo.
echo rerun.bat ^<name^> ^<cmd_path^> ^<interval^>
echo.
echo name: 进程名,根据此进程名杀死正在运行程序
echo cmd_path: 执行程序命令行
echo interval: (单位:秒)重复执行时间间隔
echo.
echo Examlpe:
echo 每5秒运行一次notepad.exe
echo run.bat "notepad.exe" "notepad.exe" 5
:end