Receber notificação do supervisord quando um trabalho sair

34

Existe alguma maneira supervisord pode reiniciar automaticamente um trabalho com falha / saída / fim e enviar um email de notificação com um despejo das últimas x linhas de arquivo de log?

    
por Sebastian Hoitz 01.03.2011 / 16:56

1 resposta

47

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
    
por 08.03.2011 / 16:44