web-dev-qa-db-ja.com

upstartでさまざまな停止/再起動信号を定義する方法

私はすべてのシステムをupstartを使用してさまざまなアプリケーションプロセスを管理するように変換し始めています。私が常に見逃していることの1つは、stopまたはrestartイベントでプロセスに異なる信号を送信する機能です。

たとえば、Webプロセスを nicorn で実行します。 Unicornには優れた信号処理APIがあります。プロセスを正常にリロードしたい場合は、マスターpidにUSR2シグナルを送信します。それらを正常にシャットダウンするには、QUITコマンドを送信します。 TERM(upstartのデフォルトの停止信号)は、即時シャットダウンを構成します。

別の例は Resque の使用です。ワーカーを正常にシャットダウンするために、QUIT信号を送信します。 TERMシグナルは、ワーカーの子がフォークされているかどうかに関係なく、即座にシャットダウンします。

Upstartはカスタムシグナルをサポートしていますか?どこにも見当たらないようで、「仕事用の間違ったツール」を使っているのではないかと心配です。

8
localshred

Ubuntu 10.04には kill signalおよびkill timeout 関連する信号とタイムアウト値を構成するパラメータ。 「リロード」信号はSIGHUPにハードコードされています。

upstartの新しいバージョンでは reload signal parameter -詳細については、この質問に対する他の回答を参照してください。

4
the-wabbit

Upstart v1.10.0以降、「リロード信号」を定義できます。

https://launchpad.net/upstart/1.x/1.10.

このバージョンは、v13.10以降のubuntuで利用できます...私は次の手順を使用してec2インスタンスをアップグレードしました。

https://askubuntu.com/questions/302762/upgrading-13-04-to-13-1

Rails + pumaを使用し、/ etc/init /app-1.confファイルでこのディレクティブを使用して正常にリロードします。

reload signal SIGUSR2
6
diclophis