作业退出时从 supervisord 获得通知

Seb*_*itz 37 monitoring logging supervisord

有什么方法supervisord可以自动重新启动失败/退出/终止的作业并向我发送一封通知电子邮件,其中包含日志文件最后 x 行的转储?

Tho*_*aaf 52

有一个插件叫做 superlance。

您可以通过pip install superlance以下网址安装或下载:http : //pypi.python.org/pypi/superlance

接下来你要做的是进入你的supervisord.conf并添加以下几行:

[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m email1@example.com
events=PROCESS_STATE
Run Code Online (Sandbox Code Playgroud)

这之后应该是“supervisorctl update”。当进程“退出”时,您现在将收到发送至 email1@example.com 的通知。

如果您只想收听某些选定的应用程序,您可以将其交换-a为一个-p program1或者如果它是一个组group1:program2一个例子是

[eventlistener:crashmail]
command=/usr/local/bin/crashmail -p program1 -p group1:program2  -m email1@example.com
events=PROCESS_STATE
Run Code Online (Sandbox Code Playgroud)

关于自动重启:您应该确保将autorestart其设置为trueunexpected默认设置为)。这样,包将重新启动 3 次。如果之后它仍然退出,它就会放弃,但您可以使用startretries.

示例程序:

[program:cat]
command=/bin/cat
autorestart=true
startretries=10
Run Code Online (Sandbox Code Playgroud)