当 upstart 监控脚本重新生成时我怎样才能收到电子邮件?

当 upstart 监控脚本重新生成时我怎样才能收到电子邮件?

我的 upstart 配置看起来像这样

start on filesystem
stop on runlevel S

respawn

exec /path/to/my/script

当此脚本终止并重新生成时,我希望收到一封电子邮件。这可能吗,还是我使用的工具不对?

谢谢!

答案1

您可以编写一个启动后节来发送电子邮件。

# 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

答案2

mail您可以在脚本中添加命令,或者编写一个包装器脚本来执行该命令,然后调用您的脚本。然后,您就可以让 Upstart 使用您的包装器脚本。

echo 'Script scriptname respawned' | mail -s "respawn notice" [email protected]

答案3

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!" [email protected] 
end script

相关内容