Om de zoveel tijd loopt een programma vast, in welk geval je een methode nodig hebt om het te doden. Linux biedt verschillende benaderingen voor het geforceerd beëindigen van programma’s vanuit de shell.
Hoe het ‘killall’-commando te gebruiken
De killall commando doodt alle processen op naam. Dat betekent dat als je drie versies van hetzelfde programma draait, het commando killall alle drie doodt. Open bijvoorbeeld een klein programma zoals een afbeeldingsviewer. Open nu een ander exemplaar van dezelfde afbeeldingsviewer. In dit voorbeeld wordt Xviewer gebruikt, een kloon van Eye Of Gnome. Open een terminal en typ het volgende commando: killall xviewer
Beide exemplaren van het programma worden gesloten.
Dood het exacte proces
Het commando killall kan vreemde resultaten opleveren. Als je een opdrachtnaam hebt die meer dan 15 tekens lang is, werkt de opdracht killall alleen voor de eerste 15 tekens. Als je dus twee programma’s hebt die dezelfde eerste 15 tekens delen, worden beide programma’s geannuleerd, ook al wilde je er maar één doden. Om dit te omzeilen, kun je de volgende schakelaar specificeren, die alleen bestanden doodt die overeenkomen met de exacte naam. killall -e
Negeer geval bij het doden van programma’s
Om ervoor te zorgen dat de opdracht killall de hoofdletters van de programmanaam die u opgeeft negeert, gebruikt u de volgende opdracht: killall -I
killall –ignore-case
Dood alle programma’s in dezelfde groep
Wanneer u een opdracht zoals de volgende uitvoert, worden er twee processen gemaakt: ps -ef | minder
Eén commando is voor het ps -ef-gedeelte, dat alle lopende processen op je systeem opsomt, en de uitvoer wordt doorgesluisd naar het less-commando. Beide programma’s behoren tot dezelfde groep, namelijk bash. Voer de volgende opdracht uit om beide programma’s tegelijk te beëindigen: killall -g
Als u bijvoorbeeld alle opdrachten in een bash-shell wilt beëindigen, voert u het volgende uit: killall -g bash
Voer de volgende opdracht uit om alle actieve groepen weer te geven: ps -g
Bevestiging krijgen voordat je programma’s doodt
Het is duidelijk dat het commando killall een krachtig commando is en je wilt niet per ongeluk de verkeerde processen doden. Wanneer u de volgende schakeloptie gebruikt, wordt u gevraagd of u het zeker weet voordat elk proces wordt afgebroken. killall -i
Processen doden die al een bepaalde tijd lopen
Stel je voor dat je een programma draait en het duurt veel langer dan je had gehoopt. U kunt het commando op de volgende manier doden: killall -o h4
De h in de bovenstaande opdracht staat voor uren – deze opdracht doodt processen die vier uur of langer duren. Geef een van de volgende tijdmijlpalen op:
- zo: seconden
- m: minuten
- h: uur
- d: dagen
- met wie: weken
- M: maanden
- ja: jaar
Als alternatief, om commando’s te beëindigen die nog maar net zijn gestart, gebruikt u de volgende schakeloptie: killall -y h4
Deze keer doodt het commando killall alle programma’s die minder dan 4 uur actief zijn.
Vertel me niet wanneer een proces niet wordt afgebroken
Als u een programma probeert te beëindigen dat niet actief is, ontvangt u standaard de volgende fout: programmanaam: geen proces gevonden
Als je niet wilt weten of het proces niet is gevonden, gebruik dan het volgende commando: killall -q
Reguliere expressies gebruiken
In plaats van de naam van een programma of commando op te geven, geeft u een reguliere expressie op zodat alle processen die overeenkomen met de reguliere expressie worden afgesloten door het commando killall. Gebruik het volgende commando om een reguliere expressie te gebruiken: killall -r
Programma’s doden voor een specifieke gebruiker
Om een programma dat eigendom is van een specifieke gebruiker te beëindigen, gebruik je de -u switch: killall -u
Laat de programmanaam weg om alle processen van die gebruiker te beëindigen.
Wacht tot Killall klaar is
Killall keert standaard terug naar de terminal wanneer je het uitvoert, maar je kunt killall dwingen te wachten tot alle gespecificeerde processen zijn gesloten voordat je terugkeert naar het terminalvenster. Voer het volgende commando uit: killall -w
Als het programma nooit sterft, blijft Killall ook voortleven.