ホームページ  >  記事  >  運用・保守  >  Linux ゾンビプロセスを強制終了できない場合の対処方法

Linux ゾンビプロセスを強制終了できない場合の対処方法

WBOY
WBOYオリジナル
2022-05-23 14:38:208027ブラウズ

Linux ゾンビ プロセスを強制終了できない場合の解決策: 1. cat コマンドを使用して、ゾンビ プロセスの親プロセス ID を表示します。構文は「cat /proc/zombie process's process ID/status」です。 2. kill コマンドを使用して、親プロセスを強制終了します。構文は「kill -9 親プロセスのプロセス番号」です。

Linux ゾンビプロセスを強制終了できない場合の対処方法

#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。

Linux ゾンビ プロセスを強制終了できない場合の対処方法

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

Linux ゾンビプロセスを強制終了できない場合の対処方法

#2.親プロセスを削除するには、「kill -9 親プロセスのプロセス番号」を使用します。

Linux ゾンビプロセスを強制終了できない場合の対処方法

推奨学習: Linux ビデオ チュートリアル

以上がLinux ゾンビプロセスを強制終了できない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。