KILL
Stuur een signaal naar een process
Hoewel UNIX®-achtige systemen zoals macOS®, BSD® en Linux® door hun ontwerp stabieler zijn dan Microsoft® Windows® kan het toch voorkomen dat we een programma moeten afsluiten wanneer het stopt met reageren. Bij dat andere bekende besturingsysteem drukken we dan op CTRL + ALT + DEL om de process manager te openen en kunnen we het programma van daaruit geforceert afsluiten.
Bij de Linux commandoregel gebruiken we dus kill en vaak in samenwerking met een tool als htop of ps. Met deze programma's zoeken we het PID (Process ID) van het process dat we willen afsluiten en gebruiken dat samen met kill om het dan effectief af te sluiten.
In de afbeelding zien we een stukje van de uitvoer van het commando $ ps -e, wat we willen weten is het getal 22465 (in dit geval is dat het chat programma Telegram wat we binnen de Linuxgebruikers redactie gebruiken).
In dit geval geeft kill geen melding.
- SIGHUP: Dit geeft aan het programma aan dat de terminal (seriëel of virtueel) die het programma beheert gaat afsluiten. (komt van SIGnal Hang UP.
- SIGKILL: Gebruik van SIGKILL wordt ten zeerste afgeraden! Je kunt dit vergelijken met het uittrekken van de stekker, het process zal onmiddellijk afgesloten worden en krijgt dus geen tijd om alles netjes "op te ruimen" voordat het wordt afgesloten. 1.
- SIGTERM: Sigterm kun je zien als het vriendelijk vragen aan een
process/programma of af te sluiten. Er kunnen in dit geval verschillende dingen
gebeuren:
- Het programma sluit onmiddellijk af.
- Het programma sluit af na een korte tijd (het programma zal dan eerst alles "opruimen" voor het zichzelf afsluit.
- Het programma blijft eindeloos actief en sluit niet af, in dit geval zal een sysadmin vaak toevlucht nemen naar kill -9 of kill -SIGKILL om het programma alsnog af te sluiten.
Het komt er dus op neer dat je meestal een SIGKILL gebruikt en als laatste hulpmiddel een SIGTERM, de SIGHUP wordt automatisch gestuurt als je een terminal venster sluit met daarin nog een draaiend process.
Als je meerdere processen in 1 keer wil afsluiten kun je het PID gescheiden door een spatie achter elkaar ingeven, zoals het voorbeeld in de Manpages aangeeft : kill 123 543 2341 3453
Wil je alle programma's die je kunt afsluiten beëindigen: kill -15 -1
Heb je nu verschillende processen met dezelfde naam en wil je deze allemaal afsluiten, dan kun je ook gebruik maken van killall gevolgt door de naam van het process.
Dit werkt natuurlijk ook als er maar 1 process met die naam actief is. Dit commando is wel HooFdLetter gevoelig (CaSe SenSItiVe), dus killall Telegram werkt, maar killall telegram niet.
Voor de mensen die liever met een GUI werken is er ook nog het programma xkill dit toont een doodshoofd cursor en sluit het venster waarop je dan klikt. Het voordeel hiervan is ook dat je geen naam van een programma of PID moet opzoeken.
Meer informatie kun je altijd terugvinden in de manpages of de infopages