Windows监控系统服务,发现其关闭就立即启动的bat文件

本文介绍了一个使用批处理脚本自动监测特定服务状态的方法,如发现服务停止,脚本将自动重启服务,确保服务的连续运行。脚本每隔20秒检查一次,适用于Windows环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

Windows系统中,使用批处理文件(.bat)直接创建并设置一个持续运行的守护进程服务并不直接支持,因为批处理文件主要是用于执行一系列命令,而不是管理服务。然而,你可以通过编写一个批处理脚本来启动一个长期运行的应用程序,然后将其关联到系统服务上,这需要借助其他工具如Windows任务计划程序(Task Scheduler)或者第三方工具(如NSSM - Non-Sucking Service Manager)。 以下是基本步骤: 1. **编写批处理脚本**(例如,名为`myservice.bat`): ```cmd start "" "your_application_path.exe" ``` 这里假设`your_application_path.exe`是你要作为守护进程运行的程序。 2. **使用任务计划程序创建任务**: - 打开“控制面板” -> “管理工具” -> “服务” - 或者右键点击“此电脑” -> “管理” -> “服务和应用程序” -> “服务” - 点击“创建基本任务” 3. **配置新任务**: - 输入任务名称,比如`MyService` - 选择“当我登录时”或“立即触发”,然后点击“下一步” - 选择“启动程序”,浏览找到你刚写的`myservice.bat`路径,点击“下一步” - 设置一些启动选项,如保持打开(防止批处理窗口关闭),然后点击“完成” 4. **将任务关联到服务**: 如果你想将这个任务变成真正的服务,可以考虑使用第三方工具如NSSM。安装后,打开NSSM,选择“Install”按钮,然后按照提示输入服务名、描述等信息,并指定`myservice.bat`作为服务执行程序。 注意:批处理文件方式并不保证服务会在用户未登录时继续运行,对于更复杂的场景,建议使用Windows服务管理器(sc命令行工具)或者服务监控软件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值