Windows bat 批处理守护进程

@echo off

set _task=nodepad++.exe
set _svr=%cd%\%_task%
set _des=start.bat

: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********
echo Program Start time at %time% ,Please check the log >> restart_service.log
echo %_svr% > %_des%
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 Startup Completion********
goto checkstart

:checkag
echo %time% The program runs normally and continues to check after 10 seconds...
echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
cscript //b //nologo %tmp%\delay.vbs 10000

goto checkstart

如果不想显示守护进程页面可使用 vb 隐藏,将上面的守护代码保存为 watchdog.bat。

set ws=WScript.CreateObject("WScript.Shell")  
ws.Run "watchdog.bat",0

把上面的代码保存为watchdog.vbs。守护进程需要从任务管理器中进行关闭。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 10,233评论 0 11
  • 代码如下: @echo oFF ::code by LZ-MyST QQ:8450919 BLOG:http://...
    安妮小子被占用了阅读 9,332评论 0 0
  • 1.内存的页面置换算法 (1)最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的...
    杰伦哎呦哎呦阅读 8,694评论 1 9
  • 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概...
    SlashBoyMr_wang阅读 4,876评论 0 3
  • 进程 操作系统背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作...
    go以恒阅读 4,483评论 0 2