initプロセス(pid 1を使用するプロセス)をrootで終了できますか?その結果は何ですか?
ベストアンサー1
基本的にいいえ。これは許可されません。 Linuxでは(man 2 kill
):
プロセスID 1(つまり、initプロセス)に送信できる唯一の信号は、initに明示的なシグナルハンドラがインストールされているシグナルです。これは、システムが予期せずクラッシュしないようにするために行われます。
Pid 1(init)は自分が終了することを決定できます。この場合、「killing」は基本的に自分の終了を要求することです。これはこのコマンドを実装する1つの可能な方法ですが、これを実行する方法halt
はわかりません。init
Macでlaunchd
シグナル15(SIGTERM)(初期化アナログ)でシャットダウンすると、実行中のプログラムを完全にシャットダウンせずにシステムをすぐに再起動します。キャプチャできない信号9(SIGKILL)で終了すると、何も起こりません。これは、Macのkill()
セマンティクスがこの点でLinuxのセマンティクスと同じであることを示しています。
現在、試してみたいというLinuxボックスはありません。したがって、今日、UpstartやSystemdなどの代替プロジェクトがより普及しているので、init
LinuxがSIGTERMを使用して実行することに関する質問は待つ必要があります。init
答えは変わるかもしれません。
修正する:Linux ではinit
SIGTERM が明示的に無視されるため、何もしません。 @jsbillingsに情報がありますUpstartとSystemdがすること。