window下监控java程序

本文介绍了一种在Windows环境下监控多个Java程序运行状态的方法,通过定制脚本实现对特定Java程序的进程监控,一旦发现程序停止,脚本将自动重启对应程序,确保服务连续性。文中详细解释了如何通过修改JDK bin目录下的java.exe文件名称,以及使用批处理脚本(tasklist和find/C命令)检查进程状态,并在进程缺失时启动相应jar包。

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

1、需求:window环境下对多个java程序进行监控,如果程序意外停止,将自动对任务进行重启。

2、分析:启动java程序后,进程中的任务名称都是java.exe;当程序停止后,我们无法通过文件名称来启动对应的程序。为了能通过任务名称启动对应的java程序,我们必须为每个程序映射对应的taskName,操作为:在jdk的bin目录下,根据需要监控的程序个数,复制java.exe文件个数;并改名成对应的java程序名称,分别使用对应的程序名.exe文件启动对应的jar包;

3、脚本具体代码:

tasklist |find /C "JMSConsumer" >JMSConsumer.txt
set /p consumernum=< JMSConsumer.txt
del /F JMSConsumer.txt
echo %consumernum%
if "%consumernum%" == "0" (
       start /D"C:\Users\Desktop\123" JMSConsumer -jar JMSConsumer.jar
)
tasklist |find /C "JMSProducer" >JMSProducer.txt
set /p producernum=< JMSProducer.txt
del /F JMSProducer.txt
echo %producernum%
if "%producernum%" == "0" (
       start /D"C:\Users\Desktop\123" JMSProducer -jar JMSProducer.jar
)

4、最后把jk.bat脚本放在window server下添加任务计划程序,做成定时任务

5、相关名词解释:

tasklist是列出所有进程,可以指定只列出某用户的进程,用/FI参数过滤。
find /C可以去tasklist的结果中查找指定进程名,并输出个数,"JMSConsumer" >JMSConsumer.txt将"JMSConsumer"命令的结果输出到"JMSConsumer.txt"这个文本文件中去;
set /p consumernum=< JMSConsumer.txt 将当前命令的返回结果输入到后面的文件中(覆盖) consumernum< 将其后面的文件的内容作为其前面命令的输入
可以用start /D path program去异步调用program程序,也就是不等program指定完毕就执行下面的语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值