window下进程退出后自动重启

设计思想:编写批处理脚本监控进程的运行状态,如果发现进程停止,则自动重启该进程。批处理脚本(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

 

posted @   技术研究与问题解决  阅读(3732)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示