如果我的可执行文件重新启动,如何使用 UPSTART 发送电子邮件?

如果我的可执行文件重新启动,如何使用 UPSTART 发送电子邮件?

我正在使用 UPSTART 来重新启动我的可执行文件,如果它出现故障并且工作正常。

start on runlevel [2345]
stop on runlevel [016]

chdir /opt/data/data_server
respawn

post-stop script
  sleep 30
end script

limit nofile 8092 8092
setuid david
exec ./data_server --file=../config/property.init --data_port=8080

如果我的可执行文件出现故障,然后在同一个 UPSTART 配置中重新启动它,我们是否可以添加另一个功能来发送电子邮件(当我的程序出现故障并要重新启动时)?我不确定是否有任何方法可以使用相同的 UPSTART 配置来做到这一点。

我想从 发送一封电子邮件,其中[email protected]包含[email protected]一条简单的消息,表明我的程序此时已停止运行,并且一旦我的程序重新启动,我想发送另一封电子邮件,表明我的程序此时已重新启动。

答案1

你可以尝试这样的事情:

start on runlevel [2345]
stop on runlevel [016]

chdir /opt/data/data_server
respawn

post-start script
    echo "Service Started at `date +"%F %T"` on `hostname`" | mail -s "Service Started" [email protected]
end script

post-stop script
  sleep 30
end script

limit nofile 8092 8092
setuid david
exec ./data_server --file=../config/property.init --data_port=8080

hostname中的命令将echo打印服务器的主机名,因此您应该能够在电子邮件中知道它在哪台服务器上重新启动。

相关内容