Linux 定时重启某个服务

1.创建start.sh脚本,该脚本用于杀死进程并重启服务

#!/bin/sh
#需要定时重启程序的绝对路径
RESOURCE_NAME=/home/gm_prox_zf/manage.py
#查找进程号
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|awk '{print $2}'`
if [ ${tpid} ]; then
echo ${tpid}
echo 'Stop Process...'
#杀死进程
kill -15 $tpid
fi
sleep 5
echo $! > tpid
#重新启动程序
python3 /home/gm_prox_zf/manage.py 
echo Start Success!
#新的进程号
tpid=`ps -ef|grep $RESOURCE_NAME|grep -v grep|awk '{print $2}'`
echo ${tpid}

2.将start.sh放到manage.py的同级目录中,修改start.sh并测试start.sh有没有问题

(1)修改start.sh权限

chmod +x start.sh

(2)运行start.sh

./start.sh

如果遇到以下错误:

运行以下命令就可解决:

yum -y install dos2unix
dos2unix start.sh 
./start.sh

 

3.设置定时任务

(1)添加定时任务

crontab -e

添加以下任务:

*/3 * * * * /home/gm_prox_zf/start.sh >/home/gm_prox_zf/myout.out 2>&1

 */3 * * * *是cron表达式,表示每三分钟执行一次该任务

 /home/gm_prox_zf/start.sh,表示要执行的任务

>/home/gm_prox_zf/myout.out 2>&1,表示将输出结果保存到myout.out文件中

(2)重新加载cron服务

systemctl reload crond.service

(3)重新启动cron服务

systemctl restart crond.service

 (4)查看当前定时任务列表

crontab -l

(5) 查看任务是否启动

grep "start.sh" /var/log/cron

 在/var/log/cron中查找start.sh

出现上述结果,表明任务启动成功!

PS:

按照以上操作完成后,如果发现任务在执行但是并没有开启新的进程号,需要确认步骤1中的地址都是绝对路径!!!包括python路径和py路径

cron相关命令参考链接:https://www.cnblogs.com/sxdcgaq8080/p/10730633.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值