基于linux crontab jar自动重启

前言

生产上有个定时任务,时不时会挂一下,基本都是MMO,因为涉及到核心业务,不可靠还经常扯皮。研究下自动重启

开始是想打包成docker镜像,然后用docker-compose restart设置为always就成了
后面研究了dockerfile打包成,docker-compose设置运行环境,运行配置什么的不会整,就研究linux定时任务了。

一、脚本

vim monitoring.sh
#!/bin/sh

. /etc/profile
. ~/.bash_profile
#切换到目录
cd /data/app/tzsb-zhgl/
date=`date`
#查询端口占用
lsof -i:8889

# $? -ne 0 不存在 $? -eq 0存在 
if [ $? -ne 0 ]
then
    nohup java -jar -Dloader.path=lib is-task-1021.jar --spring.profiles.active=prod > /dev/null 2>&1 &
    echo $date  ":=============== restart ===============" >> monitoring.log
else
    echo $date  ":=============== is normal ==============" >> monitoring.log
fi

配置访问权限

chmod 777 monitoring.sh

二、添加定时任务

Linux crontab 命令
Linux crontab是用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。

添加或更新crontab命令

crontab -e

追加一条命令

30 * * * * . /etc/profile;/bin/sh /data/app/monitoring.sh

重启crond

service crond restart

查看当前系统登录用户的Crontab命令集合

crontab -l

时间格式参考https://www.runoob.com/linux/linux-comm-crontab.html
在这里插入图片描述

三、杀死指定端口进程

lsof -i:8899

kill -9 PID
kill -9 $(netstat -nlp | grep :8899 | awk '{print $7}' | awk -F"/" '{ print $1 }')

可以和上面配合使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值