繁体   English   中英

即使它在Linux中崩溃,也会自动重启python脚本

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM