运行一个永远不会被终止的 Python 脚本

运行一个永远不会被终止的 Python 脚本

我有一个脚本python script.py在新屏幕中运行,但有时该脚本会被终止:

18
21
Restarting processes... done
2
Killed

如何保护脚本在关闭控制台时不被终止?我应该使用 & 还是 nohup?

答案1

我建议将此代码添加到您的脚本中http://code.activestate.com/recipes/278731-creating-a-daemon-the-python-way/

或者使用屏幕。

编辑:这有点现代,但我没有用过它(我使用一些定制的东西)http://pypi.python.org/pypi/python-daemon

答案2

您的意思是它在会话内运行吗GNU screen?在这种情况下,它不应该被终止,除非脚本存在问题并且它因该问题而终止。

如果您不使用screen,请使用开始使用它或tmux(我更喜欢)。

答案3

type=Simple一种现代的方法是使用 systemd。您只需创建不带任何屏幕/tmux的服务单元,并设置restart=always选项以在任何意外退出时重新启动脚本。

除了 screen/tmux,您还可以使用start-stop-daemon基于 debian 系统的 -native 工具来妖魔化应用程序。但是退出时重新启动应该使用第三方工具(如 monit)来实现。

相关内容