Wie werden Zombie-Prozesse behandelt, wenn der übergeordnete Prozess stirbt?

Wie werden Zombie-Prozesse behandelt, wenn der übergeordnete Prozess stirbt?

Welche Technik verwendet das Unix-System, um Zombieprozesse zu entfernen, deren übergeordneter Prozess beendet wurde?

Antwort1

Wenn der übergeordnete Prozess eines Prozesses stirbt, übernimmt init (Prozess 1) den Prozess. Es erntet dann die übernommenen Prozesse, die Zombies sind oder werden.

Das Reaping wird normalerweise vom übergeordneten Prozess durchgeführt, da dieser wissen muss, wann das Kind stirbt. Außerdem muss verhindert werden, dass die PID des Kindes wiederverwendet wird, bis der übergeordnete Prozess es weiß, damit der übergeordnete Prozess nicht den falschen Prozess signalisiert (signalisiert die richtige PID, aber die PID gehört jetzt zu einem neuen Prozess). Beim Reaping-Prozess sollte der übergeordnete Prozess das Kind vergessen.

Antwort2

Wenn ein Prozess beendet wird und dieser Prozess untergeordnete Prozesse im Zombie-Zustand hat, wird die Prozess-ID der Eltern aller Zombie-Unterprozesse auf 1 (der Init-Prozess) gesetzt, der die untergeordneten Prozesse erbt und bereinigt (d. h. Init wartet auf sie, wodurch der Zombie entfernt wird).

verwandte Informationen