我在Digital Ocean的屏幕会话中运行Python脚本。如果它崩溃了,我该如何让它再次自动重启?
答案 0 :(得分:0)
我不确定屏幕是否具有监控生命迹象过程的能力,但我认为supervisor之类的内容会对您有所帮助。屏幕的目的只是为了让你可以保持shell运行,即使你已经与ssh断开连接。
您可以使用pip或easy_install下载并安装(以root用户身份)主管(需要访问互联网)
pip install supervisor
或
easy_install supervisor
然后在编辑器中创建并打开/etc/supervisord.conf
并使用此标准配置填充它,或者通过挖掘various config options来创建自己的。{/ p>
[supervisord]
logfile=/tmp/supervisord.log
logfile_maxbytes=50MB ; change these depending on how many logs
logfile_backups=10 ; you want to keep
loglevel=info
pidfile=/tmp/supervisord.pid
nodaemon=true
minfds=1024
minprocs=200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
[program:myscript]
command=python /path/to/myscript.py ; change to your actual script
autostart=true
autorestart=unexpected ; only restarts when your script has been up for > 1 second and exited with a non-zero exit code.
redirect_stderr=true
stdout_logfile=/var/log/myscript.log
然后不是直接启动你的脚本,而是你需要做的就是启动主管。
/usr/local/bin/supervisord -c /etc/supervisord.conf