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


8

すべてのシステムをupstartを使用してさまざまなアプリケーションプロセスを管理するように変換し始めています。私が常に欠けているのは、プロセスstopまたはrestartイベントに別のシグナルを送信する機能です。

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

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

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

回答:


4

Ubuntu 10.04には、関連する信号とタイムアウトの値を構成するパラメータkill signalkill timeoutパラメータを持つupstartバージョン0.6.6が付属しています。「リロード」信号はにハードコードされていSIGHUPます。

の新しいバージョンでupstartreload signalパラメータが導入されています -詳細については、この質問に対する他の回答を参照してください。


知っておくと良いのですが、リロード信号がハードコードされている理由はわかりませんが、当面はそれと共存する必要があると思います。
localshred 2012

以下のdiclophisの回答によると、これはを介して可能reload signal SIGUSR2になりましたが、upstart v 1.10.0が必要です。
ghayes 14

6

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

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

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

/ubuntu/302762/upgrading-13-04-to-13-10

私はrails + pumaを使用し、/ etc / init / app-1.confファイルでこのディレクティブを使用して適切なリロードを行います。

reload signal SIGUSR2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.