私は睡眠が信号を処理できないことを読んだ。だからSIGTERM
私が送信したときに無視する必要があるようです。
sleep 10000 &
26322
kill -s SIGTERM 26322
[1]+ Exited sleep 1000
なぜ睡眠が死ぬのですか?結局、シグナルハンドラはインストールされません。
ベストアンサー1
特に言及がなければ、シグナルハンドラがインストールされていないか、またはシグナルを明示的に無視するプログラムが基本的なタスクを実行します。
信号を受信するときのデフォルトの動作はTERM
プロセスを終了することです。
sleep
特にユーティリティの場合、POSIX仕様で明示的に言及されている唯一の信号は、ALRM
プロセスが終了ステータス0(「成功」)で終了することを可能にする信号です。無視するか、基本操作を実行することもsleep
できます。ALRM
他のすべての信号に対して、基本的な操作が実行されます。