From bf7a0c43611b169f6d3db3c12c8ddd032c2c47d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 12 Jun 2023 08:56:27 +0800 Subject: [PATCH] 'commit' --- src/main/resource/check.sh | 33 +++++++++++++++++++++++++++++++++ src/main/resource/check.txt | 10 ++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/main/resource/check.sh create mode 100644 src/main/resource/check.txt diff --git a/src/main/resource/check.sh b/src/main/resource/check.sh new file mode 100644 index 0000000..be42bd5 --- /dev/null +++ b/src/main/resource/check.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +source /etc/profile + +# 检查java进程是否正常运行中 +if pgrep -f "com.dsideal.FengHuang" >/dev/null 2>&1 +then + echo "$(date): Java程序已经运行" +else + echo "$(date): Java程序未运行,将尝试启动..." + + # 进入程序目录 + cd /usr/local/tomcat8/webapps/FengHuang/WEB-INF/classes + + # 启动入口类,该脚本文件用于别的项目时要改这里 + MAIN_CLASS=com.dsideal.FengHuang.Start + + # Java 命令行参数,根据需要开启下面的配置,改成自己需要的,注意等号前后不能有空格 + export JAVA_HOME=/usr/java/jdk + export JRE_HOME=${JAVA_HOME}/jre + export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib + export PATH=${JAVA_HOME}/bin:$PATH + + JAVA_OPTS="-Xms1024m -Xmx2048m" + + # 生成 class path 值 + CP=.:/usr/local/tomcat8/webapps/FengHuang/WEB-INF/lib/* + + # 运行为后台进程,并且将信息输出到 logback.xml配置的日志文件位置 + nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >> /usr/local/tomcat8/webapps/FengHuang/WEB-INF/classes/log.log 2>&1 & + + echo "$(date): Java程序启动完成" +fi diff --git a/src/main/resource/check.txt b/src/main/resource/check.txt new file mode 100644 index 0000000..778c743 --- /dev/null +++ b/src/main/resource/check.txt @@ -0,0 +1,10 @@ +打开终端,输入 crontab -e 进入crontab编辑器 +添加如下内容: + +* * * * * /bin/bash -c 'for i in {1..6}; do /usr/local/tomcat8/webapps/FengHuang/WEB-INF/classes/check.sh; sleep 10; done' + + +其中 {1..6} 表示循环6次,实际上就是每10秒执行一次脚本。 +将 /path/to/your/shell_script.sh 替换为你实际的脚本所在路径。 +保存并退出编辑器。 +这样就能每10秒执行一次你的脚本,检查Java程序是否正在运行并重启程序。