Linuxターゲット用にCで記述しているFastCGIアプリケーションを生成および管理するためにsupervisordを使用しています。SIGINTを受信したときにアプリケーションを正常に終了するシグナルハンドラーがあります。ターミナルウィンドウでアプリを実行し、Ctrl-Cを発行して終了することで、シグナルハンドラーが希望どおりに機能することを確認しました。
(supervisorctlを介して)supervisordに「shutdown」コマンドを発行すると、supervisordはSIGKILLを呼び出さずにアプリを強制的に終了できないようです。
2010-08-20 10:02:49,661 INFO waiting for cse to die
2010-08-20 10:02:52,665 INFO waiting for cse to die
2010-08-20 10:02:55,669 INFO waiting for cse to die
2010-08-20 10:02:58,672 INFO waiting for cse to die
2010-08-20 10:02:59,673 WARN killing 'cse' (2031) with SIGKILL
2010-08-20 10:02:59,674 INFO stopped: cse (terminated by SIGKILL)
私のsupervisord.confファイルには次のものがあります
stopsignal=INT
私は、shutdownコマンドの呼び出し時にsupervisordが「stopsignal」を発行することを前提としているため、INFOステートメントは、私のアプリがsupervisordによって発行されたSIGINTに応答していないことを示しています。
監視対象とアプリの間を通過する信号をデバッグするにはどうすればよいですか?