ゾンビのプロセスとは何ですか?
ゾンビプロセスは、実行が終了したにもかかわらず、プロセステーブルレコードを保持するコンピュータープログラムのインスタンスです。これらのような廃止プロセスは、子どものプロセスを処理する方法により、通常、UNIX®およびその他の同様のオペレーティングシステムに関連付けられています。子のプロセスが実行が終了した場合、親は通常、プロセステーブルから削除する責任があります。通常、キルコマンドでゾンビプロセスを直接削除することはできませんが、オペレーターがSignal Child(Sigchld)通知を使用する場合、親はそれを削除することがよくあります。これに失敗すると、ゾンビプロセスは親を殺すことによって間接的に削除される可能性があります。
ゾンビプロセスは、生きている死者を参照する比phor的な記述用語です。 UNIX®および同様のオペレーティングシステムでは、意図した機能を実行しなくなったにもかかわらずプロセステーブルの存在を維持するという点で、ゾンビと同様のオペレーティングシステムの廃止プロセスが見られます。プロセスが終了したときeXecuteは、オペレーティングシステムがプロセステーブルの割り当てを回復する手段は、刈り取りとして知られている可能性がある一方で、それをXecuteして死んだと言われています。ゾンビの親のプロセスは、技術的には子供を刈り取ることになっていますが、これは常に起こるとは限りません。
ゾンビプロセスの存在が意図的または望ましい場合もある特定のケースがあります。子どものプロセスが実行を停止した後、親は後で同じプログラムの別のインスタンスを実行する必要がある場合があります。ゾンビがプロセステーブルから削除されていない場合、新しい子供は老児と同じ識別(ID)を割り当てられません。特定のプログラムは、この種の差別化から恩恵を受けるか、さらには必要になる場合があります。
親プロセスが責任を負うゾンビを刈り取るための待機コマンドを実行していない場合、問題を強制することが可能かもしれません。これは通常、キルコマンドを介して行われ、sigchldを送信します親プロセスへの信号。すべてが正常に機能している場合、この信号を受け取る親プロセスは、ゾンビの子供を刈り取る必要があります。
特定の状況では、親プロセスはSigchld信号を無視する場合があります。これが発生し、オペレーターがプロセステーブルをクリアすることを依然として望んでいる場合、親プロセスが殺される可能性があります。親プロセスが作成したゾンビは、その後、INITプロセスに子供として割り当てられます。 INITは定期的に子供の待機コマンドを開始するため、責任があるゾンビは最終的にプロセステーブルから削除されます。