windows守护进程脚本实现

该博客介绍了如何使用批处理脚本(daemon.bat)在Windows环境下创建一个守护进程,该进程每隔50ms检查notepad.exe是否运行。如果notepad未启动,则启动它,并在日志文件中记录重启信息。当notepad运行时,守护进程进入休眠状态,等待下一次检查。文中还提供了延迟和程序启动完成的处理逻辑。

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

以notepad程序为例,守护进程每间隔50ms轮询检查该进程是否启动。如果启动进入休眠50ms;如果未启动,进入启动程序;

daemon.bat

@echo off

set _task=notepad.exe
set _svr=c:\windows\notepad.exe
set _des=start.bat
set _interval=50

:checkstart
for /f "tokens=5" %%n in ('qprocess.exe ^| find "%_task%" ') do (
 if %%n==%_task% (goto checkag) else goto startsvr
)

 

:startsvr
echo %time% 
echo ********program start begin********
echo program reboost at %time% ,please check log. >> restart_service.txt
start %_svr%
::echo exit >> %_des%
::start %_des%
::set/p=.<nul
::for /L %%i in (1 1 10) do set /p a=.<nul&ping.exe /n 2 127.0.0.1>nul
::echo .
::echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs 
::cscript //b //nologo %tmp%\delay.vbs 10000 
::del %_des% /Q
echo ********program start finished ********
goto checkstart


:checkag
echo %time% program %_task% run normally, next check will be lauched in %_interval% milliseconds ... 
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs 
cscript //b //nologo %tmp%\delay.vbs %_interval% 
goto checkstart

参考

  1. windows下bat批处理实现守护进程
  2. windows下bat批处理实现守护进程

  3. https://docs.microsoft.com/zh-cn/windows-server/administration/windows-commands/cscript

  4. Windows 命令行(批处理文件)延迟(sleep)方法

  5. windows环境下批处理实现守护进程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值