有什么办法supervisord
可以自动重新启动一个失败/退出/终止的作业, 并发送一个通知电子邮件与日志文件的最后x行转储?
有一个名为superlance的插件。
您可以使用pip install superlance
安装它,或者从http://pypi.python.org/pypi/superlance下载它
接下来你要做的就是进入你的supervisord.conf
并添加下面几行代码:
[eventlistener:crashmail] command=/usr/local/bin/crashmail -a -m [email protected] events=PROCESS_STATE
这应该跟着一个“supervisorctl更新”。 当一个进程“退出”,你现在将得到一个通知发送到[email protected]。
如果你只想听一些select的应用程序,你可以交换-a
为-p program1
或者如果它是一个组group1:program2
一个例子是
[eventlistener:crashmail] command=/usr/local/bin/crashmail -p program1 -p group1:program2 -m [email protected] events=PROCESS_STATE
关于自动重启:你应该确保autorestart
设置为true
(默认设置为unexpected
)。 这样包将被重新启动3次。 如果在此之后它仍然退出,它会放弃,但你可以用startretries
来改变它。
示例程序:
[program:cat] command=/bin/cat autorestart=true startretries=10