Basis van Linux en de opdrachtregel
Om een proces te stoppen dat niet meer reageert, wordt aangeraden eerst „kill <proces-ID>” te gebruiken en „kill -9 <proces-ID>” alleen als het proces daarmee niet stopt. Wat is de reden?
- AHet standaardsignaal SIGTERM (nummer 15) kan het proces ontvangen, zodat het kan opruimen voordat het stopt, terwijl SIGKILL (nummer 9) niet kan worden ontvangen en het proces zonder opruimen geforceerd beëindigt
- BSIGTERM (nummer 15), dat kill standaard stuurt, beëindigt alles inclusief de kindprocessen, terwijl SIGKILL (nummer 9) alleen het opgegeven proces beëindigt en dus minder gevolgen heeft
- CSIGKILL (nummer 9) kan het proces ontvangen, zodat het kan opruimen voordat het stopt, terwijl SIGTERM (nummer 15), dat kill standaard stuurt, niet kan worden genegeerd en het proces meteen beëindigt
Antwoord en toelichting tonen
Antwoord: A. Het standaardsignaal SIGTERM (nummer 15) kan het proces ontvangen, zodat het kan opruimen voordat het stopt, terwijl SIGKILL (nummer 9) niet kan worden ontvangen en het proces zonder opruimen geforceerd beëindigt
Een signaal is een korte melding waarmee het besturingssysteem een proces op de hoogte brengt van een gebeurtenis, en elk signaal heeft een vast nummer en een vaste naam. Zonder opties stuurt kill SIGTERM (nummer 15); een programma kan een routine (handler) voorzien die dit signaal ontvangt, zodat het bestanden in bewerking kan opslaan of tijdelijke bestanden kan verwijderen voordat het stopt. SIGKILL (nummer 9) kan het proces niet ontvangen en ook niet negeren, en de kernel beëindigt het proces geforceerd, zodat half geschreven bestanden beschadigd kunnen achterblijven. Het ID van het proces dat moet worden gestopt, wordt opgezocht met ps of top.
Verder: nog 9 vragen over Basis van Linux en de opdrachtregel