前言
使用bat方式长时间运行java项目时,偶尔会发生闪退情况,故而需要定时检测项目所在端口的运行情况,并完成重启。
一、创建配置文件
创建restart-settings.conf文件,内容如下
# 该文件用于配置自动重启需要接管的java项目
# 格式为: 别名 项目名
pro1 my-java-program1.jar
pro2 my-java-program2.jar
pro3 my-java-program3.jar
二、自动重启脚本
创建 start.bat文件,内容如下
@echo off
chcp 936 > nul
title 自动重启脚本
setlocal enabledelayedexpansion
:loop
set "merge="
for /f "tokens=2 delims= " %%i in ('jps -l') do (
set "line=%%i"
set "merge=!merge!;!line!"
)
set "merge=%merge:~1%"
echo %date:~0,10% %time:~0,8% 正在检测项目运行状态...
for /f "eol=# tokens=1,2 delims= " %%i in (restart-settings.conf) do (
echo !merge! |findstr %%j > nul
if errorlevel 1 (
echo %date:~0,10% %time:~0,8% %%i is stopped
echo %date:~0,10% %time:~0,8% restart %%i...
echo %date:~0,10% %time:~0,8% restart %%i >> restart-log.txt
start start-%%i
) else (
echo %date:~0,10% %time:~0,8% %%i is running
)
)
echo 计时结束后将进入下一次检测,请勿退出!
timeout /t 600 /nobreak
cls
goto loop