shellを使用してプロジェクトモデルがサーバにロードされているかどうかを監視し、ロードされていない場合はモデルを起動します.
1470 ワード
今日プロジェクトを配置する时、时にはプロジェクトの模型が落ちることがあることを発见して、あるいは人の流量が多い时に自动的に切断することができて、とても正常な使用に影响して、そのためshellを使ってプロジェクトの模型が切断するかどうかを监视する必要があって、もし切断するならば自动的に再开して、ネット上で少し调べて、みんなは书いても少なくなくて、ここで私は更にブロガーに自分の必要なのはブロガーとは違うので、自分が使っていることを記録しましょう.checkmodel.shと名付けました.
コードは次のとおりです.
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になります.
コードは次のとおりです.
#!/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になります.