Linuxの場合Linux環境でのゾンビ プロセスの終了

概要: ゾンビプロセスとは何か、それを見つける方法、そしてそれを強制終了または終了する方法。

この記事は次に適用されます: この記事は次には適用されません: この記事は、特定の製品に関連付けられていません。 すべての製品パージョンがこの記事に記載されているわけではありません。

手順

ゾンビプロセスとは:
これは終了したプロセスですが、プロセス記述子がメモリに残っているため、すべてがメモリからすぐに削除されるわけではありません。

プロセスの通常の動作はどうあるべきか
プロセスが終了すると、プロセスのステータスは EXIT_ZOMBIE また、プロセスの親プロセスには、その子プロセスが終了したことが通知されます。 SIGCHLD signal.

その後、親プロセスは wait() システムコールが死んだプロセスの終了状態やその他の情報を読み取るためのもの。変更後 wait() が呼ばれると、ゾンビプロセスがメモリから削除されます。これは迅速に行われるため、システムにゾンビ プロセスが蓄積されることはありません。ただし、複数のゾンビプロセスが蓄積されている場合、これはプログラムコードが効率的ではない状況です

ゾンビプロセスを見つける方法:
コマンドの実行 top
Topコマンドの結果

コマンドの実行 ps -ef | grep defunct
非アクティブ コマンドの結果

ゾンビプロセスの蓄積を終了する方法:
ほとんどの場合、ゾンビ プロセスには同じ親プロセス ID があります

プロセスを削除するには、次の2つの方法があります。
  • 送信 SIGCHLD 親プロセスにシグナルを送ります。
このシグナルは、親プロセスに wait() システムコールを行い、そのゾンビの子をクリーンアップします。
kill -s SIGCHLD <PPID>
Example:
kill -s SIGCHLD 2201
  • ゾンビの親プロセスを強制終了します
kill -9 <PPID>
Example:
kill -9 2201

対象製品

SUSE Linux Enterprise Server 12, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8, SUSE Linux Enterprise Server 15, Ubuntu Server LTS
文書のプロパティ
文書番号: 000019108
文書の種類: How To
最終更新: 03 2月 2026
バージョン:  5
質問に対する他のDellユーザーからの回答を見つける
サポート サービス
お使いのデバイスがサポート サービスの対象かどうかを確認してください。