「ゾンビプロセスが1つあります」


33

このメッセージは、マシンにログインすると表示されます...

There is 1 zombie process.
  • それは私に何を伝えていますか?
  • これは私が心配すべきことですか?
  • はいの場合、どうすればよいですか?

19
近くに二連式の散弾銃がありますか?
EEAA

回答:


28

心配することは何もありません:

ゾンビ

Unixオペレーティングシステムでは、ゾンビプロセスまたは機能しないプロセスは、実行を完了したがプロセステーブルにまだエントリがあるプロセスであり、それを開始したプロセスは終了ステータスを読み取ることができます。この用語のカラフルな比phorでは、子プロセスは死にましたが、まだ刈り取られていません。

プロセスが終了すると、それに関連付けられているすべてのメモリとリソースの割り当てが解除され、他のプロセスで使用できるようになります。ただし、プロセステーブル内のプロセスのエントリは残ります。親には、子が死亡したことを示すSIGCHLDシグナルが送信されます。このシグナルのハンドラーは、通常、システムの待機状態を実行し、終了ステータスを読み取り、ゾンビを削除します。その後、ゾンビのプロセスIDとプロセステーブルのエントリを再利用できます。ただし、親がSIGCHLDを無視すると、ゾンビはプロセステーブルに残ります。状況によっては、これが望ましい場合があります。たとえば、親が別の子プロセスを作成する場合、同じプロセスIDが割り当てられないようにします。

ソース:http : //wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process


マークの説明に感謝します。今、私はそれをどのように見つけ、それを保持するかどうかを判断し、そうでなければ、それを削除します(そしてメッセージ)。
ジョン・ミー

通常、彼らは自分で立ち去ります。これが本当にあなたを苛立たせている場合、リブートするか、親プロセスのPIDを見つけてそれを殺すことができますが、ゾンビを置き去りにしているものに依存します、それはその特定のプロセスを殺すのに問題があるかもしれません。
マークアンドレR.

2
これがあなたの質問に対する本当の答えであるなら、私の答えを受け入れることを忘れないでください;)ありがとう!
マークアンドレR.

10
申し訳ありませんが、あなたは彼の質問の最初の部分だけに答えました。それを心配する必要があるかどうか、そしてそれについて何をすべきかはまだ不明です。

0

受け入れられた答えで説明されているように、実行は完了したが、まだプロセステーブルにあるプロセスがあります:https : //serverfault.com/a/390216/48449

プロセスが1つしかない場合、これは害にはなりませんが、発生することはありません。数が多すぎて、それらを生成する原因となっている親プロセスを再起動または再起動しないと、許可されているプロセスの最大数に達し、重大な問題を引き起こす可能性があります。

心配が適切であるかどうか、およびゾンビが他のどのプロセスに属しているかを調べるには、これがうまくいきます:

ps -elf --forest | grep -C5 '<[d]efunct>'

必要に応じてコンテキスト行の数を増やして親プロセスを見つけ、理想的にはそのプロセスを修正して、終了したサブプロセスを「刈り取る」ようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.