systemdはkill -9でどのように生き残りますか?

systemdはkill -9でどのように生き残りますか?

最近、「'kill -9 0'がコンソールセッションを終了する理由」と「カーネルパニックを引き起こす方法」という質問の間で、私はサドルの下で針をつかみ、kill -9 1最近Arch Linuxノートブックで次世代Linuxを実行しました.に。私はユーザーID "root"でこれを行っています。

一種の衝突、パニック、システムシャットダウンを十分に予想したが、何も起こらなかった。もう一度やったけどkill -9 1役に立たなかった。

systemdこれで、Arch Linuxシステムはすべて実行中です。systemdkill -9で生き残るには? Linux 3.7カーネルには特別なケースのコードがあると予想していますが、おそらく私が考えていない他の理由があるかもしれません。

PID 1で実行される他のものはどうですか?私はSlackwareがまだそれを使用していると思いますinitが、私のプロダクションSlackwareサーバーで試すのは怖いです。私のワイヤレスルーターのDD-WRTはある種の/ sbin / initを実行します。

答え1

からman 2 kill

プロセスID 1(つまり、initプロセス)に送信できる唯一の信号は、initに明示的なシグナルハンドラがインストールされているシグナルです。これは、システムが予期せずクラッシュしないようにするために行われます。

つまり、受信中に(終了を含む)必要なすべてのinit操作を実行できますが、SIGKILLsystemdのinitはそれに対するシグナルハンドラをインストールしないため、何も起こりません。

関連情報