Ubuntu-10.04

如何用 upstart 定義不同的停止/重啟信號

  • October 30, 2015

我開始將我們所有的系統轉換為使用 upstart 來管理我們的各種應用程序流程。我經常缺少的一件事是能夠向程序stoprestart事件發送不同的信號。

例如,我們使用Unicorn執行我們的 Web 程序。Unicorn 有一個很棒的信號處理 API。當我想優雅地重新載入程序時,我向主 pid 發送一個 USR2 信號。為了優雅地關閉它們,我發送了一個 QUIT 命令。TERM(upstart 的預設停止信號)構成立即關閉。

另一個例子是使用Resque。為了優雅地關閉工作人員,我向它發送 QUIT 信號。TERM 信號再次導致立即關閉,無論工人的孩子是否分叉。

新貴是否支持自定義信號?我似乎在任何地方都找不到它,這讓我擔心我正在使用“錯誤的工具來完成工作”。

Ubuntu 10.04 帶有 upstart 版本 0.6.6,它具有kill signalkill 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

引用自:https://serverfault.com/questions/349771