Назад | Перейти на главную страницу

Как я могу получить электронное письмо при возрождении отслеживаемого скрипта-выскочки?

Моя конфигурация выскочки выглядит примерно так

start on filesystem
stop on runlevel S

respawn

exec /path/to/my/script

Когда этот скрипт умрет и возродится, я хочу получить электронное письмо. Возможно ли это, или я использую не тот инструмент для работы?

Спасибо!

Вы можете написать постстартовую строфу для отправки электронных писем.

# 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" me@mydomain.org
    echo "my-foo service started at `date +"%F %T"`" | mail -s "My-foo Service Started" them@theirdomain.org
end script

exec -u foo-user /usr/local/bin/foo

Вы можете добавить mail внутри вашего сценария или напишите сценарий-оболочку, который сделает это, а затем вызовет ваш сценарий. Тогда у вас будет Upstart использовать ваш сценарий оболочки.

echo 'Script scriptname respawned' | mail -s "respawn notice" foo@example.com

Напишите другое задание, которое начнется на stopped событие для работы, за которой вы следите. Внутри этой работы вы можете проверить EXIT_CODE и предпринять соответствующие действия, например :

# /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!" page@example.com 
end script