設計思想:編寫批處理腳本監控進程的運行狀態,如果發現進程停止,則自動重啟該進程。批處理腳本(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