Como posso receber um email quando um script monitorado iniciado reaparece?

5

Minha configuração do upstart é parecida com essa

start on filesystem
stop on runlevel S

respawn

exec /path/to/my/script

Quando esse script morre e retorna, eu gostaria de receber um email. Isso é possível, ou estou usando a ferramenta errada para o trabalho?

Obrigado!

    
por mloughran 17.02.2011 / 21:26

3 respostas

2

Você pode escrever uma estrofe pós-início para enviar e-mail (s).

# An Upstart script to manage the foo service
respawn

post-start script
    echo "my-foo service started at 'date +"%F %T.%N"'" | mail -s "My-foo Service Started" [email protected]
    echo "my-foo service started at 'date +"%F %T"'" | mail -s "My-foo Service Started" [email protected]
end script

exec -u foo-user /usr/local/bin/foo
    
por 08.03.2011 / 20:09
0

Você pode adicionar um comando mail dentro do seu script ou escrever um script de wrapper que faz isso e chama seu script. Então você teria o Upstart usando seu script wrapper.

echo 'Script scriptname respawned' | mail -s "respawn notice" [email protected]
    
por 17.02.2011 / 21:34
0

Escreva outro trabalho que será iniciado no evento stopped do trabalho que você está monitorando. Dentro desta tarefa, você pode verificar EXIT_CODE e tomar as medidas adequadas, por exemplo, :

# /etc/init/service_alert.conf
start on stopped myservice

task

script
    env >> /var/log/service_alert.log
    [ $EXIT_STATUS -ne 0 ] && echo "Env: $(env)" | mail -s "Alert $JOB is down!" [email protected] 
end script
    
por 01.01.2018 / 12:36

Tags