main
黄海 2 years ago
parent bc5c1c50c3
commit bf7a0c4361

@ -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

@ -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程序是否正在运行并重启程序。
Loading…
Cancel
Save