| In Unix-achtige systemen is een "weesproces" een proces waarvan het ouderproces klaar is met uitvoeren (beëindigd of afgesloten), maar het onderliggende proces blijft draaien. De proces-ID (PID) van het ouderproces is nog ergens vastgelegd, maar het ouderproces zelf bestaat niet meer.
Hier is een overzicht:
* Normale procesbeëindiging: Wanneer een ouderproces wordt beëindigd, wacht het doorgaans tot de onderliggende processen zijn voltooid. Dit wachten wordt beheerd met behulp van systeemaanroepen zoals `wait()` of `waitpid()`. Het bovenliggende proces ruimt de bronnen op die aan de onderliggende processen zijn gekoppeld.
* Verweesd proces: Als het bovenliggende proces eindigt *zonder* te wachten op de onderliggende processen, worden deze onderliggende processen wees. Ze zijn nog steeds op de vlucht, maar hun ouder is verdwenen.
* Overname door init: Het cruciale punt is dat verweesde processen niet zomaar worden verwijderd. In plaats daarvan neemt het init-proces (PID 1, het allereerste proces dat tijdens het opstartproces is gestart) deze over. `init` (of `systemd` in veel moderne systemen) wordt hun nieuwe ouderproces. Dit zorgt ervoor dat de verweesde processen nog steeds goed worden beheerd en uiteindelijk worden beëindigd wanneer ze klaar zijn met hun werk. In wezen voorkomt het besturingssysteem dat de verweesde processen "rogue" processen worden.
* Implicaties: Hoewel de adoptie door `init` grote problemen voorkomt, kunnen er afhankelijk van de details subtiele effecten optreden:
* Bronnen opschonen: Het oorspronkelijke bovenliggende proces kan verantwoordelijk zijn geweest voor het opschonen van bepaalde bronnen die aan het onderliggende proces waren toegewezen. Omdat de ouder weg is, gebeurt deze opruiming mogelijk niet perfect, wat mogelijk kan leiden tot kleine lekken van bronnen (hoewel deze meestal goed worden beheerd door het besturingssysteem).
* Signaalverwerking: De manier waarop signalen worden verwerkt, kan enigszins worden gewijzigd omdat de ouder niet langer aanwezig is om ze te onderscheppen of af te handelen.
Kortom, de term 'weesstatus' beschrijft de situatie waarin een proces zijn ouder heeft verloren, maar blijft draaien en uiteindelijk wordt overgenomen en beheerd door het 'init' (of 'systemd') proces. Meestal is dit geen reden tot grote bezorgdheid, omdat het systeem hier netjes mee omgaat, maar het begrijpen van het concept is belangrijk voor systeembeheer en procesbeheer. |