Ubuntu-10.04
如何用 upstart 定義不同的停止/重啟信號
我開始將我們所有的系統轉換為使用 upstart 來管理我們的各種應用程序流程。我經常缺少的一件事是能夠向程序
stop
或restart
事件發送不同的信號。例如,我們使用Unicorn執行我們的 Web 程序。Unicorn 有一個很棒的信號處理 API。當我想優雅地重新載入程序時,我向主 pid 發送一個 USR2 信號。為了優雅地關閉它們,我發送了一個 QUIT 命令。TERM(upstart 的預設停止信號)構成立即關閉。
另一個例子是使用Resque。為了優雅地關閉工作人員,我向它發送 QUIT 信號。TERM 信號再次導致立即關閉,無論工人的孩子是否分叉。
新貴是否支持自定義信號?我似乎在任何地方都找不到它,這讓我擔心我正在使用“錯誤的工具來完成工作”。
Ubuntu 10.04 帶有 upstart 版本 0.6.6,它具有
kill signal
和kill timeout
參數,可以配置相關的信號和超時值。“重新載入”信號被硬編碼為SIGHUP
.較新版本的
upstart
引入reload signal
參數- 有關詳細資訊,請參閱此問題的其他答案。
從新貴 v1.10.0 開始,您可以定義“重新載入信號”。
https://launchpad.net/upstart/1.x/1.10.0
從 v13.10 開始,此版本在 ubuntu 上可用……我使用這些說明來升級我的 ec2 實例:
https://askubuntu.com/questions/302762/upgrading-13-04-to-13-10
我使用 rails+puma 並在我的 /etc/init/app-1.conf 文件中使用此指令進行優雅的重新載入:
reload signal SIGUSR2