Eu preciso que as mensagens de rede sejam enviadas quando um serviço do systemd em que estou travado ou travado (ou seja, entra no estado de falha; eu monitoro o travamento usando o WatchdogSec =). Percebi que o sistema mais recente tinha FailureAction =, mas depois vi que isso não permite comandos arbitrários, mas apenas reinicialização / desligamento.
Especificamente, eu preciso de uma maneira de enviar uma mensagem de rede quando o systemd detectar que o programa travou e outra quando detectar que ele travou.
Espero uma resposta melhor do que "analisar os logs" e preciso de algo que tenha um tempo de resposta quase instantâneo, para que eu não pense que uma abordagem de pesquisa seja boa; deve ser algo desencadeado pela ocorrência do evento.
Respostas:
As unidades systemd suportam o OnFailure que ativará uma unidade (ou mais) quando a unidade falhar. Você pode colocar algo como
E, em seguida, crie o
[email protected]
serviço onde você pode usar o especificador necessário (você provavelmente desejará pelo menos% i) para iniciar o script ou comando que enviará a notificação.Você pode ver um exemplo prático em http://nouthernlightlabs.se/systemd.status.mail.on.unit.failure
fonte
notify%n.service
é redundante e resultará em[email protected]
. Segundo,%i
deve ser usado em vez de%I
, ou todos os traços no nome serão convertidos em barras.Apenas minha maneira de notificar:
/etc/systemd/system/[email protected]
adicione ao systemd:
Em outros serviços, adicione:
Recarregue a configuração:
fonte
Me deparei com este utilitário que parece fornecer isso: https://github.com/joonty/systemd_mon
fonte