我有一个脚本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)来实现。