ホームページ >運用・保守 >Linuxの運用と保守 >Linux ゾンビプロセスを強制終了できない場合の対処方法
Linux ゾンビ プロセスを強制終了できない場合の解決策: 1. cat コマンドを使用して、ゾンビ プロセスの親プロセス ID を表示します。構文は「cat /proc/zombie process's process ID/status」です。 2. kill コマンドを使用して、親プロセスを強制終了します。構文は「kill -9 親プロセスのプロセス番号」です。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
kill コマンドを使用して、Linux システムのプロセスを終了できます。名前に反して、kill コマンドと他のコマンドのセット (pdill や killall など) は、1 つ以上のプロセスに特定のシグナルを送信するように記述/設計されています。指定しない場合、送信されるデフォルトのシグナルは、プロセスを終了する SIGTERM シグナルです。
親プロセスが終了するか強制終了され、その子プロセスが親プロセスとともに終了しない場合、そのプロセスを孤立プロセスと呼びます。
ゾンビ プロセスを強制終了する方法
一方、ゾンビ プロセスは強制終了できません!なぜなら、それらはすでに死んでいるからです!
各子プロセスが終了すると、ゾンビプロセスとなり、親プロセスによって削除されます。プロセスがその存在を終了し、使用していたリソースを解放しても、その名前は OS プロセス テーブルに残ります。その後、その名前は親プロセスによってプロセス テーブルから削除されます。失敗するとゾンビ プロセスが生成されますが、それはもはや実際のプロセスではなく、オペレーティング システムのプロセス テーブル上の単なるエントリです。
これが、死んだ (ゾンビ) プロセスに対してコマンド kill -9 (SIGKILL) を使用しても機能しない理由です。強制終了するものが何もないためです。
したがって、ゾンビ プロセスを強制終了してプロセス リストからその名前を削除するには、その親プロセスを強制終了する必要があります。たとえば、PID 5878 がゾンビ プロセスで、その親が PID 4809 である場合、ゾンビ (5878) を終了するには、PID 4809:
sudo kill -9 4809 #4809 is the parent, not the zombie
も終了します。ただし、親プロセスを終了するときは十分に注意してください。プロセスの親プロセスが PID 1 で、それを強制終了すると、システムが再起動されます!
例は次のとおりです:
1. 子プロセスに基づいて親プロセスを表示します。 process
cat /proc/pid/status
#2.親プロセスを削除するには、「kill -9 親プロセスのプロセス番号」を使用します。
推奨学習: Linux ビデオ チュートリアル
以上がLinux ゾンビプロセスを強制終了できない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。