Linux定时任务启动Java项目脚本

例:jar包名叫admin.jar,所在路径:/root/java/project

1.进入到jar包位置

cd /root/java/project

2.创建脚本文件autoRestart.sh

touch autoRestart.sh

3.将.sh文件变为可执行文件

chmod -R 777 autoRestart.sh

4.使用vim autoRestart.sh 进入脚本文件,注意:shell脚本中必须要有#!/bin/bash,否则shell脚本无法执行,下面是脚本内容

#!/bin/bash
source /etc/profile
sleep 1

pid=$(ps -ef | grep admin.jar| grep -v 'grep' | awk '{print $2}')
echo $(date +%F%n%T) "kill admin $pid begin"
kill -9 $pid
echo $(date +%F%n%T) "kill admin ok"
#休眠两秒再启动
sleep 2
echo $(date +%F%n%T) "restart admin begin"

#注意:下面这行是启动jar包的命令,请自行根据各自jar包启动来修改本处命令
nohup java -jar /root/java/project/admin.jar  --spring.profiles.active=prod>/dev/null &
processID=$(ps -ef | grep admin.jar| grep -v 'grep' | awk '{print $2}')
echo $(date +%F%n%T) "restart success admin $processID"

脚本编写完成后,可使用 sh autoRestart.sh 或 ./autoRestart.sh 来测试一下脚本文件是否可以执行成功。如果报错:bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory

解决:执行命令:sed -i “s/\r//” autoRestart.sh

目的:将脚本文件的文件编码dos格式变为Linux相关的unix格式

编辑定时任务文件

crontab -e

6.添加每两小时执行一次(crontab定时任务中文件需使用绝对路径)

0 */2 * * * /root/java/project/autoRestart.sh >/root/java/project/logs/restart.log 2>&1 &

7.按下ESC退出编辑后,再按:wq 保存编辑,退出页面

8.重新加载crond服务

systemctl reload crond.service

到这里就完成了,项目每隔两小时重启一次。

附上一个Linux生成cron表达式网站:https://crontab.guru/,长这样:

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值