ls
De command interpreter bash maakt een kopie van zichzelf en het
child-gedeelte zal het ls commando daadwerkelijk gaan uitvoeren.
Na uitvoering doet dit programma een exit en houdt op te bestaan.
De exit code van ls wordt echter door linux nog bewaard voor de parent.
De parent kan deze code opvragen met de wait system call. Pas dan worden
alle overblijfselen van het child process afgevoerd. Op het eerste gezicht is het
wellicht niet duidelijk wat deze aanpak voor nut heeft, maar bij scripting
zullen we zien dat de exit code gebruikt kan worden om te kijken of een process zijn werk naar behoren heeft gedaan.
Een process kan dus een nieuw process maken. Er moet wel een eerste process zijn. Dit process heet init een heeft process-nummer (PID of process-ID) 1.
Elk process heeft een eigen uniek nummer.
Een nieuw process krijgt een nieuw nummer (PID). Oude vrijgegeven PID's kunnen later opnieuw gebruikt worden. Meestal duurt dat een tijdje tot een zeker reeks doorlopen is.
Een process dat al een exit heeft gedaan en dus feitelijk 'dood' is, maar waarvan
de exit-code nog niet is opgevraagd neemt dus nog wat ruimte in het operating system
in (om precies te zijn in de process-table). Zo'n dood process heet een zombie.
Ook kan het gebeuren dat het parentprocess een exit doet voor het childprocess
aan zijn eind komt. In dat geval hebben we te maken met een orphan (weesje).
Zo'n orphan dreigt zelf een zombie te worden omdat er geen parentprocess de
exitcode zal opvragen. Gelukkig is hierin voorzien en zal bij overlijden van
een parentprocess het eventuele childprocess (of meerdere childprocessen) door init geadopteerd worden.
kill 1352
We sturen een signal naar processnummer (PID) 1352 Een process kan dat signal eventueel met een speciaal daarvoor geschreven stuk software verwerken (een signal handler), maar is hierin niet in voorzien dan zal het process een exit doen met ander woorden, ophouden te bestaan. Wil men een process echt weghebben dan is er een speciaal signal (KILL) dat ook met het killcommando mee te geven is (KILL is signal 9):
kill -9 1352
Zal process nummer 1352 uit de wereld helpen. Let op: je kunt alleen je eigen processen killen. Als superuser kun je ook andermans processen afschieten.