设计思想:编写批处理脚本监控进程的运行状态,如果发现进程停止,则自动重启该进程。批处理脚本(jk.bat)和进程脚本(hello.bat)如下:
1、jk.bat
@echo off rem 定义需监控程序的进程名和程序路径,可根据需要进行修改 set AppName=myHello.jar set AppPath=C:\Users\dongbr\Desktop\test\ title 进程监控 cls echo. echo 进程监控开始…… echo. rem 定义循环体 :startjc rem 从进程列表中查找指定进程 rem 下面语句也可写成 qprocess %AppName% >nul (经验发布后补充) rem qprocess|findstr /i %AppName% >nul jps -l |findstr /i %AppName% >nul rem 变量errorlevel的值等于0表示查找到进程,否则没有查找到进程 if %errorlevel%==0 ( echo ^>%date:~0,10% %time:~0,8% 程序正在运行…… )else ( echo ^>%date:~0,10% %time:~0,8% 没有发现程序进程 echo ^>%date:~0,10% %time:~0,8% 正在重新启动程序 start hello.bat ) rem 用ping命令来实现延时运行 for /l %%i in (1,1,10) do ping -n 1 -w 1000 168.20.0.1>nul goto startjc echo on
2、hello.bat
title hello进程 set AppName=myHello.jar set AppPath=C:\Users\dongbr\Desktop\test\ java -jar %AppPath%%AppName% 2>nul && echo ^>%date:~0,10% %time:~0,8% 启动程序成功 rem 程序执行完毕执行exit命令退出运行窗口 exit