新贵电子邮件通知

时间:2013-05-28 21:08:38

标签: foreman upstart

我通过foreman导出了一个upstart脚本,我在.conf文件中添加了一行,以便在重新启动进程时发送电子邮件。但是,当我杀死测试功能的过程时,它会在我的收件箱中发送超过20封电子邮件。有没有人知道是否有更有效的方法,或者我是SOL?

start on starting square-web
stop on stopping square-web
respawn

exec su - deployer -c 'cd /rails/square; echo "Thin 5000 restarted on square.local" | mail jordan@square.org; export PORT=5000; export RAILS_ENV=production; rails s thin -p $PORT >> /var/log/square/web-1.log 2>&1'  

1 个答案:

答案 0 :(得分:1)

问题很可能是导轨暂时挂在监听插座上一段时间。这将发生,特别是如果关闭所有套接字并且死于SIGTERM需要超过5秒,因为之后新贵将发送SIGKILL,这将使这些套接字全部保留在TIME_WAIT中。

如果你可以让你的听众使用SO_REUSEADDR,那么这就会消失,因为你只需要收回TIME_WAIT监听端口。如果您希望事情花费的时间超过5秒,您可能还想提高终止超时:

kill timeout 20

如果你只想减少垃圾邮件,你可以让你的工作稍微休息一下,让操作系统有时间关闭监听套接字:

post-stop exec sleep 1