在日常开发维护的过程中,我们的服务会因为各种原因挂掉,这个时候实现自动重启服务就比较重要!
服务异常挂掉后,自启
实现原理:使用linux系统的crontab定时任务,对服务的进程进行监听,当服务进程不在的时候,我们来执行脚本文件运行服务!
我们这里先编写一个脚本文件,如下:
#! /bin/sh
proc_name="start.py" #进程名
proc_num() #查询进程数量
{
num=$(ps -ef | grep $proc_name | grep -v grep | wc -l)
return $num
}
proc_num
number=$? #获取进程数量
if [ $number -eq 0 ] #如果进程数量为0
then #重新启动服务器,或者扩展其它内容。
cd /data/pythonservice/etlZkb/
sudo nohup python3 start.py &
fi
这个脚本文件比较简单,如果有其他需求,也可以再更改!
写完之后,我们将txt文件改为.sh后缀,如下:
这样我们就生成了一个脚本文件,我们把他放到服务器上面,如果有winscp软件的兄弟,可以直接拖进服务器指定目录.我们把他上传到root文件夹下面.
然后我们切换到服务器上面,准备设置定时任务.可以使用crontab -e 来进行增加定时任务.我们这里的设置是每分钟进行一次监听.
*/1 * * * * sh /root/restart_startpy.sh
添加之后,我们就可以解决服务异常挂掉的问题了.