linux中通过定时任务,定时执行shell脚本启动jar服务
1. linux crontab定时器
检查是否你的操作系统已经安装了crontab
rpm -qa | grep crontab
图片上这样就说明已经安装好了 PS:因为我已经下载过了
如果没有安装分别执行
yum -y install vixie-cron
yum -y install crontabs
注释:vixie-cron 是 cron 的主程序;
crontabs 是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
2.安装好了–启动和配置服务
手动方式
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
若service不能使用时,使用: systemctl
图片这样说明已经在运行了 同样可以设置开机自启动: chkconfig --level 345 crond on
基本场景使用命令:
看本地定时任务:crontab -l
添加或修改定时任务:vi /etc/crontab
实时查看crontab执行内容:tail -f /var/log/cron
修改后重启: systemctl restart crond.service
3.本机测试如下:
在对应路径下添加runjar.sh
脚本和对应脚本日志auto.log
文件,脚本如下:
#! /bin/bash
RESOURCE_NAME=/opt/server/ring/ring.jar
RESOURCE_LOG=/opt/server/ring/ring.log
cur_dateTime=$(date "+%Y-%m-%d %H:%M:%S")
ps -ef|grep $RESOURCE_NAME|grep -v grep|awk '{print $2}'| xargs -r kill -9
if [ $? -eq 0 ]
then
echo 'kill Process!'
else
echo 'WhaleSwallow is not running.'
fi
sleep 5
echo 'running start------ '$RESOURCE_NAME'----------'
echo 'RESTART_DATE:' $cur_dateTime
nohup java -Xmx1024m -Xms512m -Dfile.encoding=utf-8 -jar $RESOURCE_NAME > $RESOURCE_LOG 2>&1 &
sleep 10
tail -200f $RESOURCE_LOG
echo '=======================END======================'
添加定时任务:vi /etc/crontab,
这里是每天1:00执行一次
4.重启定时任务服务:systemctl restart crond.service
查看实时日志:tail -f /var/log/cron