GNU/Linux >> Linux の 問題 >  >> Linux

Linux でこのプロセスを強制終了できないのはなぜですか?

質問番号 1 に答えるには:

プロセスが子プロセスを生成すると、子プロセスはそれぞれ独自の PID を持ちます。各子の PPID (親のプロセス ID) は、親プロセスの PID です。親プロセスが停止すると、子プロセスは孤立します。孤立したプロセスは、PID が 1 のシステム初期化プロセスによって自動的に取得されます。


問題

あなたのスクリプトはおそらくゾンビを作成しています あなたの kill -9 のせいで コマンド; jjlin answer から示唆されているように、強制されずにプロセスを突然強制終了することは決して良い習慣ではありません。

man bash から 読むことができます:

<ブロック引用>

とマークされたプロセスは、死んだプロセス (いわゆる「ゾンビ」) です。 ") 親が適切に破棄しなかったため残っている .これらのプロセスは init(8) によって破棄されます 親プロセスが終了した場合。

答え #1: プロセス init PID 1 を持っています この Linux では、PID 1 の親が割り当てられます (init に割り当てられるため)。 ).

答え #2: 簡単に殺すことはできません 死んだばかりだから ... 親が init の場合 しばらく待つだけで十分でしょう。

<ブロック引用>

システムからゾンビを削除するには、 kill コマンドを使用して SIGCHLD シグナルを手動で親に送信できます。親プロセスがまだゾンビの取得を拒否している場合、次のステップは親プロセスを削除することです。プロセスが親を失うと、init が新しい親になります。 init は定期的に wait システム コールを実行し、init を親として持つゾンビを刈り取ります。 [1]

いつかこのアイデアが浮かんだ場合に備えて:to #kill -9 init root 権限を持つプロセスは、コンピュータを送電網から物理的に切り離すのと同等のソフトウェアです。 [:-)]

ただし、ゾンビ プロセス ps の出力で識別できます STAT に「Z」があることによるコマンド 桁。次の行を使用して簡単に識別できます

ps -aux | grep Z

Linux ゾンビの世界に関する参考文献 :

  • 再起動せずにゾンビ プロセスを強制終了する方法はありますか?
  • ゾンビ プロセスとは
  • ゾンビプロセスを強制終了する方法
  • [1] ネット上の多くのソースから

Linux
  1. Linuxでゾンビプロセスを見つけて殺す方法

  2. Linux – -9プロセスを強制終了すべきではないのはいつですか?

  3. Linuxで親プロセスが強制終了された後、子プロセスがまだ生きているのはなぜですか?

  1. Javaプロセスを強制終了するLinuxスクリプト.

  2. Linux 検索結果を rm にパイプできないのはなぜですか?

  3. Linux でプロセスを一時停止/再開する方法

  1. Linuxでゾンビプロセスを強制終了する方法

  2. コマンドを使用してLinuxでプロセスを強制終了する方法は?

  3. このファイルを root として削除できないのはなぜですか?