Existe um plugin chamado superlance.
Você o instala com pip install superlance
ou faz o download em: link
A próxima coisa que você faz é entrar no seu supervisord.conf
e adicionar as seguintes linhas:
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -a -m [email protected]
events=PROCESS_STATE
Isso deve ser seguido por uma "atualização de supervisorctl". Quando um processo "sair", você receberá uma notificação enviada para [email protected].
Se você quiser apenas ouvir alguns apps selecionados, poderá trocar o -a
por um -p program1
ou se for um grupo group1:program2
Um exemplo seria
[eventlistener:crashmail]
command=/usr/local/bin/crashmail -p program1 -p group1:program2 -m [email protected]
events=PROCESS_STATE
Em relação ao reinício automático:
você deve certificar-se de que autorestart
esteja definido como true
(ele é definido como unexpected
por padrão). Desta forma, o pacote será reiniciado 3 vezes. Se depois disso ainda sair, desiste, mas você pode mudar isso com startretries
.
Exemplo de programa:
[program:cat]
command=/bin/cat
autorestart=true
startretries=10