2012-05-29 14 views
5

upstartによって開始されたデーモンに何らかのリロードコマンドを送信するにはどうしたらいいですか?イベントに長寿命です upstartサービスにreloadコマンドを送信

  • デーモンを処理し、何か他の一般的
  • デーモンにサービスを提供するために、一度実行

    • プログラム:

    +0

    'upstart'で開始されるサービスは、イベントを処理するために実行されるリアルタイムプログラム、または長期実行デーモンです。通常、これらの種類のプログラムのstdin/stdout/stderrは存在しません。問題を報告する必要があるときにログファイルに書き込み、特定のファイルから入力を読み込みます。私はあなたがなぜこの通常のパラダイムを回避しようとしているのか不思議です。何を解決しようとしていますか? – sarnold

    +0

    upstart経由でnode.jsスクリプトをデーモンとして実行します。これは永続的に実行する必要があります。このスクリプトでは、リロードコマンドを取得する必要があることがあります。残念ながらupsatrtは 'reload servercontrol'のような構文をサポートしていません。だから私は 'stop servercontrol&start servercontrol'のスクリプトを止めることができないので、stdinの使用について考えました。 – buschtoens

    +0

    'reload service'はあなたのプロセスに' SIGHUP'シグナルを送ります; 'SIGHUP'シグナルはデーモンによって設定ファイルの再読み込みを要求するためによく使われます...それはあなたのために働くでしょうか?管理者は他のすべてのジョブと同様にタスクを管理するのが簡単です。 – sarnold

    答えて

    9

    upstartは、一般的に2種類のプロセスを管理しますSIGHUPシグナル用のシグナルハンドラを提供し、デーモンにコンフィギュレーションファイルの再読み込みと再解析を依頼してください。 (SIGHUPはハングアップシグナルであり、電話回線やSSHプロトコルが接続または切断されたときに出入りする可能性のある端末に関連します)端末を持たないプログラムの場合、端末を「ハングアップ」することは意味を持ちません信号が送信されないように、システム管理者の処置による場合を除いてデーモンに。)

    をあなたはそれがSIGHUP信号を受信したときに、その構成を再読み込みするために、あなたのプログラムを変更することができます場合は、標準のupstartreload serviceコマンドを使用することができます構成ファイルをリロードします。 (この信号には何かがありますが、システム管理者はデーモンがこの信号で設定ファイルを再読み込みすることを期待しています。他の何かをすると混乱し、迷惑になることがあります)。

    +4

    'reload'コマンドのために別のシグナルを出すように起動スクリプトを設定することもできます。スクリプト自体の中では、単に 'reload signal USR2'またはあなたのアプリが何であっても宣言します。 –

    関連する問題