SPRINGBOOT项目配置定时重启案例
标签: CentOS SpringBoot springboot jar 定时重启
一、如果是LINUX环境
1)、编写重启脚本timeRestart.sh,内容如下:
-
#! /bin/bash
-
export LANG="en_US.UTF-8"
-
export JAVA_HOME=/usr/local/java/jdk1.8.0_131
-
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
export PATH=$JAVA_HOME/bin:$PATH
-
JOB_JAR=/home/runtime/job
-
echo "【`date +%Y-%m-%d_%H:%M:S`】开始关闭hospital_job-1.0.0.jar"
-
pid=`ps -ef | grep hospital_job-1.0.0.jar |grep -v grep | awk '{print $2}'`
-
out=`kill -9 ${pid}`
-
echo "【`date +%Y-%m-%d_%H:%M:S`】关闭hospital_job-1.0.0.jar成功"
-
echo "【`date +%Y-%m-%d_%H:%M:S`】开始启动hospital_job-1.0.0.jar"
-
nohup java -jar $JOB_JAR/hospital_job-1.0.0.jar &
-
echo "【`date +%Y-%m-%d_%H:%M:S`】启动hospital_job-1.0.0.jar成功"
2)、修改脚本权限timeRestart.sh,内容如下(不修改权限无法运行):
chmod 777 timeRestart.sh
3)、配置系统定时任务:
首先:crontab -e 添加如下内容
时间规则说明:
-
crontab [选项] 定时任务设置
-
1、crontab -e 编辑crontab定时任务
-
2、crontab -l 查询crontab任务
-
3、crontab -r 删除当前用户所有的crontab任务
-
4、*/1 * * * * ls -l /etc > /tmp/to.txt
-
第一*:一个小时当中的第几分钟 0-59
-
第二*:一天当中的第几小时 0-23
-
第三*:一个月中的第几天 1-31
-
第四*:一年中的第几个月 1-12
-
第五*:一周当中的星期几 0-7(0和7都代表星期天)
-
*代表任何时间。
-
,代表不连续的时间 。0 8,12,16 * * *,代表每天8点0分,12点0分,16点0分
-
-代表连续的时间范围。0 5 * * 1-6 ,代表周一到周六的凌晨5点0分执行命令
-
*/n代表每隔多久执行一次。*/10 * * * * ,代表每隔10分钟就执行一次命令
然后重启任务调度
service crond restart
4)、检查是否配置成功:
一分钟后(按实际配置时间为准)检查进程pid是否变化,发生变化则表示重启成功
二、如果是WIN环境
1)、安装AlwaysUp
2)、编写springboot项目启
动脚本job.bat
java -jar hospital_job-1.0.0.jar
导入启动脚本到AlwaysUp,设置宕机立即重启
3)、编写killjob.bat用于定时杀死job项目,当job项目被杀死后启动脚本会立即重启
-
@echo off
-
setlocal enabledelayedexpansion
-
for /f "tokens=1-5" %%a in ('netstat -ano ^| find ":9005"') do (
-
if "%%e%" == "" (
-
set pid=%%d
-
) else (
-
set pid=%%e
-
)
-
echo !pid!
-
taskkill /f /pid !pid!
-
)
-
exit
4)、配置定时杀死项目,即配置项目重启时间
5)、验证是否成功
重启前pid为7496:
重启后pid为6896: