Answers:
每个信号都有一个“默认配置”-进程在收到该信号时默认执行的操作。signal(7)
手册页中有一张表格列出了它们:
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
在shell脚本中捕获和解析输出之类的荒谬之举外……)
{ dd if=/dev/zero of=/dev/null & }; kill -USR1 $!; jobs; sleep 1; jobs
重现您所描述的效果。