利用shell监测项目模型是否在服务器上加载,没有加载则启动模型

       今天在部署项目的时候,发现有时候项目的模型会掉或者是当人流量多的时候会自动断开,很影响正常的使用,因此需要使用shell来监测项目模型是否断开,若断开就自动重启,在网上也查了一些,大家写了也不少,这里我更加该博主修改成我自己的,因为我需要的跟该博主不一样,就记录符合我自己是使用的啊,我命名为checkmodel.sh

代码如下:

#!/bin/bash
curl http://localhost:8000 &>/dev/null
if [ $? -eq 0 ];then
    echo `date "+%Y-%m-%d %H:%M:%S"` 'not stop' >>running.log
    exit 0
else
    last=`cat laststart.log`
    current=`date +%Y%m%d%H%M%S`
    current=$[current-100]
    if [ $current -gt $last ];then
      ps -ef |grep project |grep -v grep |awk '{print "kill -9",$2|"bash"}'#project 表示项目名称
      echo "restart"
      sleep 5
      echo `date "+%Y-%m-%d %H:%M:%S"` 'stoped restart !!!!' >>restart.log
      source /root/.bashrc
      source /root/anaconda3/bin/activate pro_env && nohup python /root/project/manage.py runserver 0.0.0.0:8000 >>/root/nohup.log 2>&1 & #这里包含了启动环境和启动项目django的命令
      echo `date +%Y%m%d%H%M%S`> laststart.log
    fi
    exit 0
fi

现在需要将checkmodel.sh添加linux计划任务去。这里可以参考该博主写的内容,挺详细的,但是需要修改一下,我就放在/root目录下了。

1)crontab -e,在里边加入:

*/5 * * * * bash /root/checkmodel.sh

2)重启crond服务使之生效:

service crond restart

然后你可以使用crontab -l查看是否存在,或者直接watch -n 0.1 -d nvidia-smi 等5分钟查看项目是否起来了,起来了就ok了。

你可能感兴趣的:(detectron2,shell)