Windows下设置守护进程JAR包挂掉自动重启
文章目录
一、前言
最近公司的一个打印服务,运行在Windows服务器上,总是无缘无故的挂掉,通过监控这个程序的内存、CPU等发现并没有爆内存,也没有其它问题,但时不时就会出现进程被杀掉的情况,这就使得我们不得不经常去检查这个服务,发现挂掉就需要手动去重启这个服务,想到有没有一种挂掉自动重启的功能,于是动手研究了一下发现可以的,上去后运行效果也不错。总的逻辑思想就是:
开启一个守护进程每间隔10秒去检查一次这个服务是否正常运行,如果正常运行10秒后继续检测,如果检测过程中发现服务挂掉,立马通过命令启动服务,反正就是一个不断检查,不断拉起的过程,下面会详细说到制作过程,亲测有效!
二、实现
2.1、运行环境
- 服务器:windows 2008
- Java版本:JDK 1.8.0_261
- 程序运行形式:JAR包
2.2、编写启动JAR包的bat文件
根据你自己的需要设置启动时的参数,而且修改你JAR包所在的路径,注意修改,不要复制我的又说用不了
@echo 程序正在启动中....
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9090 D:\workFile\SNAPSHOT.jar
exit
将上述代码复制到一个文本文档中,修改成你所需要的代码,然后将文本文档的后缀改为 .bat,放在你自定义的目录下,我这里是放在桌面在。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1dToLVX8-1656058939561)(https://gitee.com/xifengxiaojiao/study-note/raw/master/images/image-20220622110514351.png)]
2.3、编写守护进程的bat文件
@echo off
set cxmc=java.exe
:START_CHECK
tasklist | findstr "%cxmc%" || goto STARTPRO
@echo =========================================================================
@echo =*****************程序-运行正常,10秒后继续检查...*****************=
@echo = 此进程窗口为*守护进程* =
@echo