1
SIGINFO
以外のデフォルトアクションのないシグナルはありませんか?このlinkは、SIGPWR
のデフォルトアクションがプロセスを終了することを示唆しています。私の要件は、カスタムシグナルハンドラが存在する場合にのみシグナルを処理し、それ以外の場合はシグナルを無視することです。SIGINFO以外のデフォルトアクションのないシグナル
SIGINFO
以外のデフォルトアクションのないシグナルはありませんか?このlinkは、SIGPWR
のデフォルトアクションがプロセスを終了することを示唆しています。私の要件は、カスタムシグナルハンドラが存在する場合にのみシグナルを処理し、それ以外の場合はシグナルを無視することです。SIGINFO以外のデフォルトアクションのないシグナル
すべてのシグナルとそのデフォルト処理のリストについては、man 7 signal
を参照してください。現在のところ、これらはデフォルトでは無視されていると見なします:
Signal Value Action Comment
──────────────────────────────────────────────────────────────
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGURG 16,23,21 Ign Urgent condition on socket (4.2BSD)
SIGWINCH 28,28,20 Ign Window resize signal (4.3BSD, Sun)
ご覧のとおり、実際には多くの選択肢はありません。上記のうち、子プロセスがないと確信できる場合はSIGCHLD
、そうでない場合はSIGURG
と表示されます。最後に、SIGWINCH
は、プログラムのサイズを変更できる制御端末がないと確信できる場合にのみ適切です。
あなたのユースケースはなんですか?そして、 'カスタムシグナルハンドラが存在するときだけシグナルを処理する 'ということはどういう意味ですか? –
私は、シグナルのデフォルト動作が何もないことを意味します。シグナルハンドラがある場合にのみ、シグナルが何かを行うべきである –