2013-05-28 112 views
2

我通過工頭導出了一個暴發戶腳本,並且在.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 [email protected]; export PORT=5000; export RAILS_ENV=production; rails s thin -p $PORT >> /var/log/square/web-1.log 2>&1' 

回答

1

問題很可能是鋼軌掛在聽筒上一會兒。這種情況會發生,特別是如果關閉所有套接字並從SIGTERM中死亡超過5秒鐘,那麼新貴將發送SIGKILL,這將使這些套接字全部在TIME_WAIT中。

如果您可以讓您的監聽器使用SO_REUSEADDR,那麼這會消失,因爲您只需收回TIME_WAIT監聽端口。您可能還希望,如果你希望的東西超過5秒需要更長的時間,以提高殺超時:

kill timeout 20 

如果你只是想減少垃圾郵件,你可以有你的工作,睡眠位給予OS時間關閉監聽插座:

post-stop exec sleep 1