Was ist ein Zombie-Prozess?

Ein Zombie-Prozess ist ein Fall eines Computerprogramms, das eine Prozesstabellenaufzeichnung trotz der Fertigung der Durchführung behält. Verstorbene Prozesse wie diese verbunden sind gewöhnlich mit Unix® und anderen ähnlichen Betriebssystemen wegen der Weise, die sie Kindprozesse behandeln. Wenn ein Kindprozeß die Durchführung beendet, ist das Elternteil für das Entfernen es von der Prozesstabelle gewöhnlich verantwortlich. Es ist normalerweise nicht möglich, einen Zombie-Prozess mit dem Tötungbefehl direkt zu entfernen, obwohl das Elternteil häufig gebildet werden kann, um ihn zu entfernen, wenn der Operator die Mitteilung des Signalkindes (SIGCHLD) verwendet. Dieses verlassend, kann ein Zombie-Prozess durch das Töten des Elternteils indirekt entfernt werden.

Zombie-Prozess ist ein metaphorischer beschreibender Ausdruck, der Bezug auf das Leben tot nimmt. Verstorbene Prozesse in Unix® und ähnliche Betriebssysteme können dadurch gesehen werden, wie analog Zombies, dass sie eine Prozesstabellenanwesenheit trotz ihre beabsichtigten Aufgaben nicht mehr wahrnehmen beibehalten. Wenn ein Prozess die Durchführung beendet, gesagt es manchmal gestorben zu sein, während die Mittel, durch die das Betriebssystem seine Prozesstabellenverteilung zurückgewinnt, bekannt können, wie erntend. Der Elternprozeß eines Zombies soll technisch seine Kinder ernten, obwohl dieser nicht immer geschieht.

Es gibt bestimmte Fälle, in denen das Bestehen eines Zombie-Prozesses absichtlich sein kann oder sogar wünschte. Nachdem ein Kindprozeß Durchführung aufgehört, kann das Elternteil einen anderen Fall des gleichen Programms später laufen lassen müssen. Wenn ein Zombie nicht von der Prozesstabelle entfernt worden, zugewiesen ein neues Kind nicht die gleiche Kennzeichnung (ID) wie das alte Kind e. Bestimmte Programme können von profitieren oder sogar diese Art der Unterscheidung erfordern.

Wenn ein Elternprozeß nicht den Wartezeitbefehl durchgeführt, Zombies zu ernten, die er für verantwortlich ist, kann es möglich sein, die Entscheidung zu erzwingen. Dieses getan gewöhnlich über den Tötungbefehl und das Schicken des SIGCHLD Signals zum Elternprozeß. Wenn alles richtig arbeitet, sollte ein Elternprozeß, der dieses Signal empfängt, seine Zombiekinder ernten, damit ihre IDs und Prozesstabellenpositionen wiederverwendet werden können.

Unter bestimmten Umständen kann ein Elternprozeß das SIGCHLD Signal ignorieren. Wenn dieses und die Wünsche des Operators noch auftritt, die die Prozesstabelle gelöscht, kann der Elternprozeß getötet werden. Alle mögliche Zombies, die der verursachte Elternprozeß dann ist, zugewiesen als Kinder dem init Prozess. Da init regelmäßig den Wartezeitbefehl auf seinen Kindern einleitet, entfernt alle mögliche Zombies, die er für Willen schließlich verantwortlich ist, von der Prozesstabelle.