Systemd executa o comando após o limite de início atingido

6

Estou trabalhando em um serviço systemd para envolver um script de administração e estou tentando lidar com isso completamente.

Agora eu tenho Restart definido como always , então ele tentará novamente quando algo falhar, mas alguns estados de falha exigem atenção (falta de arquivo de configuração, SQL incorreto, etc.), então não quero girar continuamente em segundo plano em um estado incorrigível.

Eu encontrei StartLimitInterval , StartLimitBurst e StartLimitAction , que pára de tentar reiniciá-lo após X falhas em Y segundos, mas acontece que as únicas ações disponíveis para StartLimitAction estão reinicializando ou desligando máquina, que é um pouco exagerado.

Eu tenho procurado OnFailure e escrevi um mini serviço para enviar um e-mail de alerta quando ele é acionado, mas o OnFailure é acionado toda vez que o serviço morre, não quando atinge o limite inicial, então recebemos vários e-mails em vez de apenas um.

Alguma idéia do que tentar em seguida?

    
por Will 27.06.2016 / 23:17

1 resposta

2

Startlimitaction pode ser o que você deseja. A página man diz

... Takes one of none, reboot, reboot-force, reboot-immediate, poweroff, poweroff-force or poweroff-immediate. If none is set, hitting the rate limit will trigger no action besides that the start will not be permitted.

Parece que definir a ação startlimit como nenhuma pode fazer o que você quer.

    
por 27.06.2016 / 23:45

Tags