Signals
為什麼 SIGUSR1 會導致程序終止?
我對其他問題的評論感到驚訝:
在 USR1 啟動後過早發送 dd 信號(即在 bash 腳本中,啟動它之後的行)實際上會終止它
誰能解釋為什麼?
每個信號都有一個“預設處置”——程序在接收到該信號時預設執行的操作。手冊頁中有一個表格
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
註冊一個處理程序來攔截信號並用它做一些有用的事情,但是如果你的信號太快,它還沒有時間註冊那個處理程序,所以預設的操作會發生