Skip to main content

Hoe processen te doden met behulp van Linux

Linux Tutorial for Beginners: Introduction to Linux Operating System (Juni- 2026)

Linux Tutorial for Beginners: Introduction to Linux Operating System (Juni- 2026)
Anonim

Meestal zult u willen dat een programma op eigen kracht eindigt, of, als het een grafische toepassing betreft, door de juiste menuoptie te gebruiken of door het kruisje in de hoek te gebruiken.

Om de zoveel tijd blijft een programma hangen, in welk geval je een methode nodig hebt om het te doden. Misschien wilt u ook een programma doden dat op de achtergrond wordt uitgevoerd en niet meer hoeft te worden uitgevoerd.

Deze handleiding biedt een methode voor het doden van alle versies van dezelfde applicatie die op uw systeem worden uitgevoerd.

Hoe het killall-commando te gebruiken

Het commando killall doodt alle processen op naam. Dat betekent dat als je drie versies hebt van hetzelfde programma met het killall-commando alle drie worden gedood.

Open bijvoorbeeld een klein programma zoals een afbeeldingsviewer. Open nu nog een kopie van dezelfde image viewer. Voor mijn voorbeeld heb ik Xviewer gekozen, een kloon van Eye Of Gnome.

Open nu een terminal en typ de volgende opdracht:

killall

Om bijvoorbeeld alle exemplaren van het Xviewer-type te doden, doet u het volgende:

killall xviewer

Beide exemplaren van het programma dat u hebt gekozen om te doden, worden nu afgesloten.

Dood het exacte proces

mishandeling kan vreemde resultaten opleveren. Nou hier is een reden waarom. Als u een opdrachtnaam hebt die meer dan 15 tekens lang is, werkt de killall-opdracht alleen op de eerste 15 tekens. Als u dus twee programma's hebt die dezelfde eerste 15 tekens delen, worden beide programma's geannuleerd, hoewel u er slechts één wilde afmaken.

Om dit te omzeilen, kun je de volgende schakelaar opgeven, die alleen bestanden zal vernietigen die overeenkomen met de exacte naam.

killall -e

Negeer de zaak bij het doden van programma's

Gebruik de volgende opdracht om er zeker van te zijn dat de opdracht killall het geval van de programmanaam negeert die u opgeeft:

killall -Ikillall --ignore-case

Dood alle programma's in dezelfde groep

Wanneer u een opdracht uitvoert zoals de volgende, worden er twee processen gemaakt:

ps -ef | minder

Eén opdracht is voor het gedeelte ps -ef dat alle actieve processen op uw systeem weergeeft en de uitvoer naar de opdracht less wordt doorgestuurd.

Beide programma's behoren tot dezelfde groep die bash is.

Om beide programma's tegelijkertijd te doden, kunt u de volgende opdracht uitvoeren:

killall -g

Als u bijvoorbeeld alle opdrachten wilt uitschakelen die in een bash-shell worden uitgevoerd, voert u het volgende uit:

killall -g bash

Overigens om een ​​lijst met alle lopende groepen te maken, voer je de volgende opdracht uit:

ps -g

Ontvang bevestiging voor het doden van programma's

Het is duidelijk dat het killall-commando een vrij krachtig commando is en je niet per ongeluk de verkeerde processen wilt doden.

Met behulp van de volgende schakelaar wordt u gevraagd of u zeker weet voordat elk proces is gedood.

killall -i

Processen doden die al een bepaalde hoeveelheid tijd hebben gedraaid

Stel je voor dat je een programma hebt uitgevoerd en dat het veel langer duurt dan je had gehoopt.

Je kunt de opdracht op de volgende manier doden:

killall -o h4

De h in het bovenstaande commando staat voor uren.

U kunt ook een van de volgende items opgeven:

  • s - seconden
  • m - minuten
  • h - uren
  • d - dagen
  • w - weken
  • M - maanden
  • y - jaren

Als u echter opdrachten wilt uitschakelen die nog maar net zijn gestart, kunt u de volgende schakeloptie gebruiken:

killall -y h4

Deze keer doodt het killall-commando alle programma's die minder dan 4 uur draaien.

Vertel het mij niet wanneer een proces niet wordt vermoord

Standaard krijg je de volgende foutmelding als je een programma probeert te doden dat niet wordt uitgevoerd:

programname: geen proces gevonden

Als je niet verteld wilt worden dat het proces niet gevonden is, gebruik dan de volgende opdracht:

killall -q

Reguliere expressies gebruiken

In plaats van de naam van een programma of opdracht op te geven, kunt u een reguliere expressie opgeven, zodat alle processen die overeenkomen met de reguliere expressie worden gesloten door de opdracht killall.

Gebruik de volgende opdracht om een ​​reguliere expressie te gebruiken:

killall -r

Dood programma's voor een specificeer gebruiker

Als u een programma wilt doden dat wordt uitgevoerd door een specifieke gebruiker, kunt u de volgende opdracht opgeven:

killall -u

Als u alle processen voor een bepaalde gebruiker wilt beëindigen, kunt u de programmanaam weglaten.

Wait For killall To Finish

Standaard zal killall direct terugkeren naar de terminal als je het uitvoert, maar je kunt killall dwingen om te wachten totdat alle opgegeven processen zijn gesloten voordat je terugkeert naar het terminalvenster.

Hiertoe voert u de volgende opdracht uit:

killall -w

Als het programma nooit sterft, zal killall ook blijven voortleven.

Signalen Signalen Signalen

Standaard verzendt het killall-commando het SIGTERM-signaal naar programma's om ze te laten sluiten en dit is de schoonste methode voor het doden van programma's.

Er zijn echter nog andere signalen die u kunt verzenden met de killall-opdracht en u kunt ze weergeven met behulp van de volgende opdracht:

killall -l

De teruggestuurde lijst zal ongeveer zo zijn:

  • HUP
  • INT
  • STOPPEN
  • ZIEK
  • TRAP
  • ABRT
  • IOT
  • BUS
  • FPE
  • DODEN
  • USR1
  • SEGV
  • USR2
  • PIJP
  • ALRM
  • TERMIJN
  • STKFLT
  • CHLD
  • CONT
  • HOU OP
  • TNTP
  • SLA
  • TTOU
  • URG
  • XCPU
  • XFSZ
  • VTALRM
  • PROG
  • WYNCH
  • IO
  • PWR
  • SYS
  • UNUSED

Die lijst is extreem lang. Als u wilt lezen wat deze signalen betekenen, voert u de volgende opdracht uit:

man 7 signaal

Over het algemeen moet u de standaard SIGTERM-optie gebruiken, maar als het programma weigert te sterven, kunt u SIGKILL gebruiken waardoor het programma wordt afgesloten, maar op een onwaardige manier.

Andere manieren om een ​​programma te doden

Er zijn 5 andere manieren om een ​​Linux-applicatie te doden zoals aangegeven in de gekoppelde gids.

Echter, om u de moeite te besparen om hier op de link te klikken, is een sectie die laat zien wat die commando's zijn, waarom u deze commando's boven killall zou kunnen gebruiken.

De eerste is het kill-commando. Het killall commando zoals je hebt gezien is geweldig in het doden van alle versies van hetzelfde programma. Het kill-commando is ontworpen om één proces per keer te doden en is daarom meer gericht.

Om het kill-commando uit te voeren, moet je de proces-ID kennen van het proces dat je wilt doden. Hiervoor kunt u de opdracht ps gebruiken.

Als u bijvoorbeeld een actieve versie van Firefox wilt vinden, kunt u de volgende opdracht uitvoeren:

ps -ef | grep firefox

Je zult een rij data zien met het commando / usr / lib / firefox / firefox aan het einde. Aan het begin van de regel ziet u uw gebruikers-ID en het nummer nadat de gebruikers-ID de proces-ID is.

Met behulp van de proces-ID kunt u Firefox doden door de volgende opdracht uit te voeren:

kill -9

Een andere manier om een ​​programma te doden is door de opdracht xkill te gebruiken. Dit wordt over het algemeen gebruikt om slecht werkende grafische applicaties te doden.

Als u een programma zoals Firefox wilt beëindigen, opent u een terminal en voert u de volgende opdracht uit:

Xkill

De cursor verandert nu in een groot wit kruis. Plaats de cursor op het venster dat u wilt doden en klik met de linkermuisknop. Het programma zal onmiddellijk afsluiten.

Een andere manier om een ​​proces te doden is door het Linux top commando te gebruiken. De bovenste opdracht geeft een overzicht van alle actieve processen op uw systeem.

Het enige wat u hoeft te doen om een ​​proces te doden, is door op de "k" -toets te drukken en de proces-ID in te voeren van de toepassing die u wilt doden.

Eerder in dit gedeelte de opdracht kill en het vereiste dat u het proces vond met behulp van de opdracht ps en vervolgens het proces doodde met de kill-opdracht. Dit is op geen enkele manier de eenvoudigste optie.

Om te beginnen levert het commando ps veel informatie op die je niet nodig hebt. Het enige dat u wilde, was de proces-ID. U kunt de proces-ID eenvoudiger krijgen door de volgende opdracht uit te voeren:

pgrep firefox

Het resultaat van het bovenstaande commando is eenvoudigweg de proces-ID van Firefox. U kunt nu de kill-opdracht als volgt uitvoeren:

doden

(Vervangen met het werkelijke proces-ID geretourneerd door pgrep).

Het is echter eenvoudiger om de programmanaam als volgt aan pkill toe te voegen:

pkill firefox

Ten slotte kunt u een grafisch hulpmiddel gebruiken zoals het hulpmiddel dat bij Ubuntu wordt geleverd met de naam "Systeemmonitor". Om "Systeemmonitor" uit te voeren, drukt u op de super-toets (Windows-toets op de meeste computers) en typt u "sysmon" in de zoekbalk. Wanneer het pictogram van de systeemmonitor verschijnt, klikt u erop.

De systeemmonitor toont een lijst met processen. Om een ​​programma op een schone manier te beëindigen, selecteert u het en drukt u op de einde-toets onder aan het scherm (of drukt u op CTRL en E). Als dit niet werkt, klik dan met de rechtermuisknop en kies "Kill" of druk op CTRL en K op het proces dat je wilt doden.