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

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

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Instrucciones

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

プロセスの通常の動作はどうあるべきか
プロセスが終了すると、プロセスのステータスは 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

Productos afectados

Dell OpenManage Enterprise, NetWorker Series
Propiedades del artículo
Número del artículo: 000019108
Tipo de artículo: How To
Última modificación: 12 abr 2025
Versión:  4
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.