在后台运行 python 脚本并在崩溃时重新启动它

seb*_*piq 6 monitoring python ubuntu

我有一个非常简单的 Python 脚本,我希望它始终在我的 ubuntu 12.04 服务器上运行。我想过使用 upstart + monit。问题是这些工具对于像我这样的普通人来说似乎相当复杂,而且我在网上找不到一个简单的例子。

暴发户 + monit 是否矫枉过正?/ 有人知道更简单的选择吗?/ 或好的教程?

spe*_*akr 10

取自这个答案

您可以编写一个 bash 脚本monitor.sh来启动您的 python 脚本并在它崩溃时重新启动它,但如果脚本正常退出则不会重新启动:

#!/bin/bash
until myscript.py; do
    echo "'myscript.py' crashed with exit code $?. Restarting..." >&2
    sleep 1
done
Run Code Online (Sandbox Code Playgroud)

然后只需在后台启动监视器脚本:

nohup monitor.sh &
Run Code Online (Sandbox Code Playgroud)

作为 的替代方案nohup,您还可以考虑使用tmuxscreen来运行后台进程。