SIGTERMが睡眠を殺すのはなぜですか? [コピー]

SIGTERMが睡眠を殺すのはなぜですか? [コピー]

私は睡眠が信号を処理できないことを読んだ。だからSIGTERM私が送信したときに無視する必要があるようです。

sleep 10000 &
26322
kill -s SIGTERM 26322
[1]+  Exited             sleep 1000 

なぜ睡眠が死ぬのですか?結局、シグナルハンドラはインストールされません。

ベストアンサー1

特に言及がなければ、シグナルハンドラがインストールされていないか、またはシグナルを明示的に無視するプログラムが基本的なタスクを実行します。

信号を受信するときのデフォルトの動作はTERMプロセスを終了することです。


sleep特にユーティリティの場合、POSIX仕様で明示的に言及されている唯一の信号は、ALRMプロセスが終了ステータス0(「成功」)で終了することを可能にする信号です。無視するか、基本操作を実行することもsleepできます。ALRM他のすべての信号に対して、基本的な操作が実行されます。

バラよりsleepこのユーティリティのPOSIXドキュメント

おすすめ記事