回答:
各シグナルには「デフォルトの性質」があります-プロセスがそのシグナルを受信したときにデフォルトで行うこと。内のテーブルがありますsignal(7)
それらを一覧表示するmanページは:
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
...
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGUSR1
そして、SIGUSR2
の両方がデフォルトのアクションを持っているTerm
-プロセスが終了されます。dd
ハンドラーを登録してシグナルをインターセプトし、それを使って何か便利なことをしますが、あまりにも早くシグナルを送信した場合、そのハンドラーをまだ登録する時間がないため、代わりにデフォルトのアクションが発生します
strace
、シェルスクリプトで出力をキャプチャして解析するような滑luな何かの横に…)
{ dd if=/dev/zero of=/dev/null & }; kill -USR1 $!; jobs; sleep 1; jobs
あなたが説明している効果を再現するために。