[英]Restart python script automatically even when it crashes in Linux
我有一個必須一直運行的python程序。 如果由於某種原因它被停止我想自動重啟它。 我想過有一個每隔n秒運行一次的cron並檢查程序是否正在運行。 我的shell腳本如下所示:
#!/usr/bin/env bash
CM_COMMAND=`ps aux| grep abc| grep def| grep sudo`
LEN_COMMAND=${#CM_COMMAND}
if[["$LEN_COMMAND" -le "5"]]
then
echo "start the python program"
fi
exit
當我運行此腳本時,我收到錯誤: my_prog.sh: line 4: $'if[[118\\r -le 5]]\\r': command not found'
這樣做的替代方法是什么,我的腳本有什么問題?
也許這會更強大?
1)啟動時保存進程的PID:
{your_python_command} & echo $! >>/{some_folder}/your_app.pid
2)如果找不到PID,該腳本將檢查並重啟。
#!/usr/bin/env bash
PID=`cat /{some_folder}/your_app.pid`
if ! ps -p $PID > /dev/null
then
rm /{some_folder}/your_app.pid
{your_python_command} & echo $! >>/{some_folder}/your_app.pid
fi
3)將其添加到cronjob:
crontab -e
選擇文本編輯器並在文件末尾添加此行:
*/1 * * * * /{your_path}/{your_script_name}
退出並保存
(這將每分鍾運行一次腳本,檢查crontab手冊以設置您的確切間隔)
如何使它成為一項服務? 在我看來,這是一個非常干凈的解決方案
有關如何執行此操作的詳細信息,請閱讀本文 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.