[英]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.