Kill

收到 kill -HUP 時的程序行為?

  • February 2, 2018

有沒有辦法找出程序在收到終止信號 HUP 時會做什麼?

無需簡單地執行命令 ofc :D

例如,

killall -HUP pppd將重新啟動 pppd

killall -HUP firefox只會殺死 firefox

閱讀它的文件。這是唯一的方法。正如Keith 已經寫的那樣, SIGHUP的最初含義是使用者無法訪問該程序,因此互動式程序應該死掉。守護程序——不直接與使用者互動的程序——不需要這種行為,而是經常在收到 SIGHUP 時重新載入它們的配置文件。但這些只是慣例。

如果你有來源,你也可以閱讀。或者,如果您只有二進製文件,您可以嘗試反彙編它,查找為sigaction設置信號處理程序的呼叫SIGHUP,並嘗試找出這些信號處理程序在做什麼。首先安排不向該程序發送 SIGHUP 會更容易。

在任何時間點,給定程序都處於與特定信號相關的三種狀態之一:忽略它、執行預設操作或執行自定義處理程序。許多 unice 允許您使用 來查看程序的信號遮罩ps,例如ps s在 Linux 上使用。這可以告訴您該程序是否忽略了信號或將在 SIGHUP 上立即死亡,但如果該程序設置了一個處理程序,您就無法知道該處理程序做了什麼。

引用自:https://unix.stackexchange.com/questions/15601