批处理文件bat定时检查windows下的服务是否启动,未启动则自启动

需求:
windows上程序部署为服务方式运行,
但是有时服务会down掉,需要手动启动该服务,很麻烦;
可以通过批处理文件解决该问题;
定时检查服务是否存在,如果服务停止了,自动把该服务启动起来。

批处理文件写法:
可以用 windows更新服务 (Windows Update) 进行测试
.bat文件中代码如下:

@echo off 
rem 定义循环间隔时间和监测的服务: 
set secs=90 
set srvname="Windows Update" 

echo. 
echo ======================================== 
echo == 查询计算机服务的状态, 			   == 
echo == 每间隔%secs%秒种进行一次查询,        == 
echo == 如发现其停止,则立即启动。			   == 
echo ======================================== 
echo. 
echo 此脚本监测的服务是:%srvname% 
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

注意:
1、如果.bat文件中的汉字出现乱码可右键点击该bat文件,点击编辑,另存为ANSI格式即可正常显示。
2、上面的批处理文件是黑窗口方式运行,可以用于测试观察效果;
3、生产环境(正式使用)的话,可以转为后台运行方式启动批处理文件;
在开头@echo off 下,加以下三行代码即可转为后台运行方式:

if "%1"=="hide" goto CmdBegin
start mshta vbscript:createobject("wscript.shell").run("""%~0"" hide",0)(window.close)&&exit
:CmdBegin
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值