最近の「なぜ「kill -9 0」でコンソールセッションが終了するのですか」と「カーネルパニックを取得する方法」の質問の間に、サドルの下にバーがあり、試しましたkill -9 1
ほとんどが最新のArch Linuxラップトップ。ユーザーID「root」としてやった。
なんらかのクラッシュ、パニック、またはシャットダウンを完全に予期していましたが、何も起こりませんでした。やった kill -9 1
再び、効果はありません。
Arch Linuxマシンは最近systemd
を実行するので、systemd
はどのようにして-9で生き残ることができますか? Linux 3.7カーネルには特別なケースのコードがあると思いますが、おそらく私が考えていなかったいくつかの他の理由が存在します。
PID 1で実行される他のものについてはどうですか? Slackwareは今でもinit
を使用していますが、実際のSlackwareサーバーで試してみるのは怖いです。ワイヤレスルーターのDD-WRTは、ある種の/ sbin/initを実行します。
man 2 kill
から:
プロセスID 1、initプロセスに送信できるシグナルは、initがシグナルハンドラーを明示的にインストールしたシグナルだけです。これは、システムが誤って停止しないようにするためです。
つまり、init
がSIGKILL
を受け取ったときに(終了を含む)好きなことをすることは可能ですが、systemdのinitはそのためのシグナルハンドラーをインストールしないため、何も起こりません。