Process
systemd 如何在 kill -9 中存活下來?
在最近的“為什麼 ‘kill -9 0’ 會結束我的控制台會話”和“如何讓核心恐慌”問題之間,我在鞍下遇到了麻煩,並嘗試
kill -9 1
使用最新的 Arch linux 筆記型電腦。我以使用者 ID“root”的身份進行操作。我完全預料到會發生某種崩潰、恐慌或關機,但什麼也沒發生。我又做
kill -9 1
了一次,沒有效果。Arch linux 機器
systemd
這些天都在執行,所以:如何systemd
在 kill -9 中倖存下來?我希望 Linux 3.7 核心中存在特殊情況程式碼,但也許存在我沒有想到的其他原因。其他使用 PID 1 執行的東西呢?我相信Slackware 仍在使用
init
,但我害怕在我的生產 Slackware 伺服器上嘗試它。我的無線路由器上的 DD-WRT 執行某種 /sbin/init。
來自
man 2 kill
:唯一可以發送到程序 ID 1(即 init 程序)的信號是那些 init 已為其顯式安裝信號處理程序的信號。這樣做是為了確保系統不會意外關閉。
也就是說,可以
init
在接收(包括退出)時做任何牠喜歡的事情SIGKILL
,但是 systemd 的 init 並沒有為它安裝任何信號處理程序,所以什麼也沒有發生。