为什么 SIGUSR1 会导致进程终止?

为什么 SIGUSR1 会导致进程终止?

我对此感到惊讶评论在其他问题中:

在启动后过早发送 dd USR1 信号(即在 bash 脚本中,启动后的行)实际上会终止它

谁能解释一下为什么

答案1

每个信号都有一个“默认处置”——进程收到该信号时默认执行的操作。手册页中有一个表格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注册一个处理程序来拦截信号并利用它做一些有用的事情,但如果你发出信号太快,它还没有时间注册该处理程序,因此就会发生默认操作

相关内容