windows服务守护进程bat脚本、windows窗体守护进程bat脚本

线上运行的windows服务和窗体服务程序经常挂掉,只能从windows日志中找到报了底层错误,问题无法定位,目前的办法是在服务器上运行守护进程

window服务守护进程

@echo off
title "数据中间件服务(windows服务)"守护进程,发布服务时请临时关闭此进程
rem 定义循环间隔时间和监测的服务:
set secs=60
set srvname="khdataserver"
set showname="数据中间件服务"
 
echo.
echo ========================================
echo ==     查询计算机服务的状态,        ==
echo ==     每间隔%secs%秒种进行一次查询  ==
echo ==     如发现其停止,则立即启动      ==
echo ========================================
echo.
echo 此脚本监测的服务是:%showname%
echo.

if %srvname%. == . goto end
:chkit
set svrst=0
for /F "tokens=1* delims= " %%a in ('net start') do if /I "%%a %%b" == %srvname% set svrst=1
if %svrst% == 0 net start %srvname%
set svrst=
rem 下面的命令用于延时,否则可能会导致cpu单个核心满载。
ping -n %secs% 127.0.0.1 > nul
goto chkit
:end 

windows窗体守护进程

@echo off
title "数据中间件服务(windows窗体)"守护进程,发布服务时请临时关闭此进程
rem 定义循环间隔时间和监测的服务:
set secs=10
set exename="khdataserver.exe"
set exepath="D:/01-myproject/khdataserver.exe"
set showname="数据中间件服务"

echo.
echo ========================================
echo ==     查询计算机服务的状态          ==
echo ==     每间隔%secs%秒种进行一次查询  ==
echo ==     如发现其停止,则立即启动      ==
echo ========================================
echo.
echo 此脚本监测的服务是:%showname%
echo.

if %exename%. == . goto end
:chkit
set svrst=0
for /f %%i in ('tasklist') do if /I "%%i" == %exename% set svrst=1
if %svrst% == 0 start "" %exepath%
set svrst=
rem 下面的命令用于延时,否则可能会导致cpu单个核心满载。
ping -n %secs% 127.0.0.1 > nul
goto chkit
:end 
原文地址:https://www.cnblogs.com/yinchh/p/10761237.html