In Unix-ähnlichen Systemen ist ein "Orphan-Prozess" ein Prozess, dessen übergeordneter Prozess ausgeführt wurde (beendet oder beendet), aber der untergeordnete Prozess wird weiterhin ausgeführt. Die Prozess -Prozess -ID (PID) des übergeordneten Prozesses wird noch irgendwo aufgezeichnet, aber der übergeordnete Prozess selbst existiert nicht mehr.
Hier ist eine Aufschlüsselung:
* Normaler Prozessabschluss: Wenn ein übergeordneter Prozess endet, wartet es in der Regel darauf, dass seine Kinderprozesse fertiggestellt werden. Dieses Warten wird mit Systemaufrufen wie "Wait () oder" WaitPID () `verwaltet. Der übergeordnete Prozess säubert Ressourcen, die mit seinen Kindern verbunden sind.
* verwaster Prozess: Wenn der übergeordnete Prozess * endet *, ohne auf seine Kinderprozesse zu warten, werden diese Kinderprozesse zu Waisen. Sie rennen immer noch, aber ihre Eltern sind weg.
* Adoption durch init: Der entscheidende Punkt ist, dass verwaiste Prozesse nicht einfach gelöscht werden. Stattdessen übernimmt der Init -Prozess (PID 1, der allererste Prozess während des Boot -Prozesses). "Init" (oder "systemd" in vielen modernen Systemen wird zu ihrem neuen übergeordneten Prozess. Dies stellt sicher, dass die verwaisten Prozesse immer noch ordnungsgemäß verwaltet und schließlich beendet werden, wenn sie ihre Arbeit beenden. Im Wesentlichen verhindert das Betriebssystem, dass die verwaisten Prozesse zu "Schurken" -Prozessen werden.
* Implikationen: Während die Annahme von "Init" wichtige Probleme verhindert, kann es je nach Einzelheiten subtile Auswirkungen geben:
* Ressourcenreinigung: Der ursprüngliche Elternprozess war möglicherweise für die Reinigung bestimmter Ressourcen verantwortlich, die dem Kinderprozess zugewiesen wurden. Da der Elternteil verschwunden ist, kann diese Reinigung möglicherweise nicht perfekt erfolgen, was möglicherweise zu geringfügigen Ressourcenlecks führt (obwohl diese normalerweise vom Betriebssystem gut verwaltet werden).
* Signalhandhabung: Die Art und Weise, wie Signale behandelt werden, kann leicht verändert werden, da der Elternteil nicht mehr vorhanden ist, um sie abzufangen oder umzugehen.
Kurz gesagt, der Begriff "Orphan State" beschreibt die Situation, in der ein Prozess seinen Elternteil verloren hat, aber letztendlich vom "Init" (oder "systemd" -Prozess übernommen und verwaltet wird. Es ist in der Regel kein Grund zu erheblichem Anliegen, da das System dies anmutig behandelt, aber das Verständnis des Konzepts ist wichtig für die Systemverwaltung und das Prozessmanagement.