Skip to main content

アプリケーションシグナルハンドリング

クライアントのコマンド(hcpなど)やサービスを特権分離で使用している場合に生成される子プロセスで実行されるアプリケーション処理は、シグナルを使用して後述の様な制御を行うことができます。

次のシグナルをアプリケーション中断シグナルとしてキャッチして処理します。実行中のアプリケーション処理を中断し、リソースを回収してプロセスを停止します。

シグナル名称説明Windows
SIGINTターミナル割込み
SIGTERMターミナル終了
SIGUSR1USR1シグナル×

次のシグナルをリソース制限に基づくアプリケーション中断シグナルとしてキャッチして処理します。実行中のアプリケーション処理を中断し、リソースを回収してプロセスを停止します。

シグナル名称説明Windows
SIGUSR2USR2シグナル×
SIGXCPUCPU制限×
SIGXFSZファイルサイズ制限×

次のシグナルをリソース回収シグナルとしてキャッチして処理します。可能な限りリソース(HpFPソケットディスクリプタなど)を解放し、シグナルを再送信(re-raise)してプロセスを即時停止します。

シグナル名称説明Windows
SIGHUPハングアップ×

このシグナルは、サービスの子プロセスに対しては使用しないでください。サービス全体の継続稼働に支障が生じることがあります(サービスの強制停止及び再起動が必要になる場合があります)。

次のシグナルは無視します。

シグナル名称説明Windows
SIGALRMアラーム×
SIGPIPEパイプ書込みエラー×

これら以外のシグナル(SIGKILL、SIGABORTなど)は処理しません(オペレーティングシステムが規定する動作を行います)。一部のリソース(HpFPソケットディスクリプタなど)は使用できなくなります。

これらのシグナルは、サービスの子プロセスに対しては使用しないでください。サービス全体の継続稼働に支障が生じることがあります(サービスの強制停止及び再起動が必要になる場合があります)。

シグナルの番号(数値)はプラットホーム毎に異なることがあります。各オペレーティングシステムのマニュアルをご参照ください。