Quero executar algum script quando um serviço falhar. A coisa mais próxima que eu vejo disso é a FailureAction=
opção (na [Service]
seção), mas ela oferece apenas comandos de reinicialização.
11
Há uma OnFailure=
diretiva na seção [Unit]
, documentada em systemd.unit (5) . É definido da seguinte forma:
Uma lista separada por espaços de uma ou mais unidades ativadas quando esta unidade entra no estado "com falha".
(Também há uma OnFailureJobMode=
diretiva na mesma seção que permite definir o modo de trabalho para ativar OnFailure = units.)
/etc/systemd/system
e coloque seu nome naOnFailure=
diretiva.Você também pode usar
ExecStopPost
para executar um comando diretamente em vez de iniciar uma unidade.Eu não estava feliz com o
OnFailure
cenário, então continuei procurando e encontrandoExecStopPost
.O exemplo real a seguir, se a tarefa principal falhar, o systemd executará um
git
comando.https://www.freedesktop.org/software/systemd/man/systemd.service.html
fonte