logo

Hoe een proces in Linux te beëindigen?

In een besturingssysteem zijn er veel programma's die plaatsvinden in het RAM-geheugen van de computer. Deze programma's kunnen door het besturingssysteem zelf worden uitgevoerd of door een gebruiker, dergelijke programma's worden genoemd 'Processen .' Normaal gesproken heeft een proces zijn eigen levenscyclus en wordt het automatisch beëindigd wanneer het is voltooid of wanneer we het handmatig afsluiten. Maar soms kan een proces vastlopen als gevolg van een fout in de procesplanning of omdat er veel RAM of CPU wordt verbruikt. In dergelijke gevallen moeten we de processen handmatig beëindigen om te voorkomen dat onze machine onverwacht vastloopt.

Linux staat verschillende tools toe om een ​​foutief proces te beëindigen. Om een ​​proces te beëindigen, moeten we over de procesinformatie beschikken, zoals PID, signaal en meer .

Lokaliseren van de processen

Om een ​​proces te beëindigen, moeten we toegang krijgen tot de procesinformatie. Er zijn verschillende opdrachten om een ​​proces te volgen, zoals bovenkant , ps , greep, En pidof.

Met het Linux-systeem kunnen we een proces op verschillende manieren beëindigen, zoals een proces beëindigen op basis van zijn naam of proces-ID (PID). We zullen dus de bovenstaande commando's gebruiken volgens onze behoefte.

Lokaliseren van de processen via het 'top'-commando

De bovenkant commando wordt gebruikt om alle actieve processen in een Linux-systeem weer te geven. Het toont gedetailleerde informatie zoals PID, gebruikersnaam, CPU-gebruik, tijd, uitgevoerde opdracht en meer.

Om de processen te lokaliseren, voert u de opdracht als volgt uit:

download youtube-video's op vlc
 top 

Met de bovenstaande opdracht worden de lopende processen weergegeven. Beschouw de onderstaande uitvoer:

Dood Process Linux

We kunnen door de processen bladeren door op en neer te scrollen op de terminal. De opdracht top biedt verschillende filters om de processen te filteren, zoals procesnaam, CPU-gebruik en meer. Om het bovenste gedeelte te verlaten, drukt u op de 'Q' sleutel, u keert terug naar de terminal. We kunnen echter ook de traditionele exit-optie gebruiken door op te drukken CTRL+C sleutels.

Lokaliseren van de processen met de opdracht ps en grep

De ps commando is een andere manier om de procesinformatie weer te geven. Er zijn veel opties die worden gebruikt met de opdracht ps, zoals naar, wat betekent:

A : Om de processen voor alle gebruikers weer te geven

in : Om de processen weer te geven die door een bepaalde gebruiker worden gebruikt

X : Om alle processen weer te geven. Als we de x-optie niet specificeren, wordt het GUI-proces niet weergegeven.

Voer de onderstaande opdracht uit om alle actieve processen weer te geven:

 ps aux 

Beschouw de onderstaande uitvoer:

Dood Process Linux

De uitvoer van het ps-commando is vergelijkbaar met het bovenkant commando. De procesnaam en PID worden in de eerste twee kolommen gegeven, en de procesnaam wordt in de rechterkolom gegeven.

Het ps-commando is nuttiger dan het top-commando. Hiermee kunnen we de uitvoer filteren met de grep-opdracht.

Stel dat we het hele proces willen filteren met de gebruikersnaam javatpo+, voer dan de opdracht als volgt uit:

 ps aux | grep javatpo+ 

De bovenstaande opdracht filtert het hele opgegeven proces op basis van de grep-opdracht. Beschouw de onderstaande uitvoer:

Dood Process Linux

De bovenstaande uitvoer biedt zowel de ps-opdracht als de functionaliteit van de grep-opdracht samen.

Lokaliseer het proces met de opdrachten pidof en pgrep

De pidof commando stelt ons ook in staat het proces te lokaliseren. Als we een proces op naam willen volgen, zal het pidof-commando erg handig zijn. Het geeft de PID's van de processen weer wanneer het wordt gebruikt met de procesnaam.

Om de PID van een proces te lokaliseren, voert u het pidof-commando als volgt uit:

 pidof process_name 

Als we het lopende proces met de exacte naam hebben chroom , voer de opdracht als volgt uit om de PID's op te halen.

 pidof chrome 

overweeg de onderstaande uitvoer:

Dood Process Linux

Een proces doden

Nu we de processen hebben gevolgd, kunnen we een proces beëindigen. Er zijn verschillende commando's die worden gebruikt om een ​​proces te beëindigen, zoals doden , doden , bovenkant, En pkill.

Voordat we een proces kunnen doden, is het noodzakelijk om te weten welke processen we kunnen doden. Hieronder staan ​​enkele essentiële punten over moordprocessen:

  • Als u een normale gebruiker bent, kunt u alleen de processen beëindigen die bij u horen. U kunt de processen die door de andere gebruikers worden uitgevoerd, niet beëindigen. De bovenkant En ps tot opdrachten tonen de gebruikers met het gerelateerde proces.
  • Een rootgebruiker kan alle processen beëindigen. We kunnen echter ook sudo vóór elke opdracht toevoegen om het als root uit te voeren.
  • Wanneer in Linux een proces wordt beëindigd, wordt er een speciaal signaal naar de processen verzonden. Hoewel er verschillende soorten signalen zijn in Linux, behandelt Linux in dit geval de SIGKILLS En TERMIJN signalen. Standaard. Linux verzendt de SIGTERM, die het proces netjes beëindigt. Als je een proces met geweld wilt beëindigen, gebruik dan SIGKILL.
  • Linux houdt de status van de processen bij totdat deze volledig uit het systeem is verwijderd. De onderliggende processen worden dus weergegeven in de proceslijst totdat een ouderproces wordt verwijderd.
  • We kunnen een proces niet beëindigen als het in werking is 'ononderbroken slaap .' Deze situatie doet zich voor wanneer een proces een invoer-/uitvoerbewerking uitvoert. Deze toestand is te zien in de 8ekolom van bovenkant en ps naar het commando.

Een proces doden met het killall-commando

Het commando killall is de gemakkelijkste techniek om een ​​proces te beëindigen als u de exacte procesnaam kent, het niet door een andere gebruiker wordt uitgevoerd en het zich niet in de Z- of D-status bevindt. Bij het commando ‘kill all’ is het niet nodig om het proces of de PID te lokaliseren. Om een ​​proces te beëindigen, voert u het commando als volgt uit:

 killall firefox 

Met het bovenstaande commando wordt het proces beëindigd en de Firefox-browser afgesloten. Beschouw de onderstaande uitvoer:

Dood Process Linux

Als het commando het proces met succes beëindigt, zal het geen uitvoer opleveren.

Om het proces met kracht te beëindigen, voert u de opdracht killall uit met -SIGKILL als volgt:

 killall -SIGKILL process_name 

we kunnen ook -9 gebruiken in plaats van -SIGKILL.

Om een ​​proces interactief te beëindigen, voert u de opdracht als volgt uit:

 killall -i process_name 

Om een ​​proces als een andere gebruiker te beëindigen, voert u de opdracht als volgt uit:

 sudo killall process_name 

We kunnen een proces ook voor een bepaalde tijd beëindigen door gebruik te maken van -O En -En vlaggen. Om een ​​proces dat langer dan 20 minuten actief is te beëindigen, voert u het onderstaande commando uit: killall -o 20m procesnaam

Om een ​​proces te beëindigen dat minder dan 20 minuten actief is, voert u de onderstaande opdracht uit:

 killall -y 20m process_name 

Afkortingen voor het gebruik van de tijdsperiode zijn als volgt:

seconden: s

minuten: m

uur: u

dagen: d

weken: w

maanden: M

jaar: j

Beëindig een proces met het pkill-commando

Soms weten we de exacte naam van het proces niet; in dat geval zal de opdracht pkill het nuttigste hulpprogramma zijn om een ​​proces te beëindigen. Hiermee kunnen we een proces beëindigen door de overeenkomende naam van het proces in te voeren. We willen bijvoorbeeld alle processen met de overeenkomende naam Java beëindigen, voer de opdracht als volgt uit:

 pkill java 

het sluit alle processen die naam Java bevatten. Op dezelfde manier voert u voor het beëindigen van een Firefox-proces de opdracht als volgt uit:

 pkill fire 

Beschouw de onderstaande uitvoer:

Dood Process Linux

Als de opdracht pkill met succes wordt uitgevoerd, wordt er geen uitvoer weergegeven.

Om een ​​proces met kracht te beëindigen met de opdracht pkill, voert u het als volgt uit:

 pkill -SIGKILL process_name<p></p> <p>we can also use -9 instead of -SIGKILL. </p>

Dood een proces met het kill-commando

Het kill-commando is het eenvoudigste hulpprogramma om een ​​proces te beëindigen; alles wat we nodig hebben is een PID van een proces. Zodra we de PID van het proces hebben, is het een eenvoudig proces. Om een ​​proces te beëindigen, voert u het kill-commando uit, gevolgd door PID. Om de PID van een proces te lokaliseren, gebruikt u de opdracht top of ps aux, zoals hierboven uitgelegd.

Om een ​​proces met PID 5296 te beëindigen, voert u de opdracht als volgt uit:

 kill 5296 

Om een ​​proces geforceerd te beëindigen, gebruikt u de optie -SIGKILL of -9:

 kill -SIGKILL 5296 

De bovenstaande opdracht beëindigt het proces met PID 5296.

Dood een proces via een topcommando

Met het bovenste commando kunnen we het proces lokaliseren en beëindigen. Het is een eenvoudig proces om een ​​proces te beëindigen met behulp van de topopdracht. Voer eerst de bovenste opdracht uit om het proces te lokaliseren en druk op de 'k' toets terwijl de opdracht wordt uitgevoerd. Het zal u in de procesdodingsmodus duiken, voer de PID in van het proces dat u wilt doden. Beschouw de onderstaande uitvoer:

Dood Process Linux

Zoals we uit de bovenstaande uitvoer kunnen zien, is er een optie 'PID om te signaleren/doden' om het proces uit de bovenstaande proceslijst te beëindigen. Typ de PID van het proces en druk op BINNENKOMEN sleutel.

Als we de PID leeg laten, wordt het bovenste proces beëindigd.

Dood een proces via Systeemmonitor

We kunnen ook een proces beëindigen via de grafische omgeving van Linux, genaamd systeemmonitor. Volg de onderstaande stappen om een ​​proces via de systeemmonitor te beëindigen:

Stap 1: Zoek of blader door de systeemmonitor en druk op Enter om deze te openen.

Stap 2: Het zal alle actieve processen van uw Linux-systeem vermelden. Beschouw de onderstaande afbeelding:

Dood Process Linux

Stap 3: Blader door het proces en klik er met de rechtermuisknop op dat u wilt beëindigen.

Stap 4: Selecteer de optie Doden. Ook kunnen we gebruik maken van de CTRL+K sleutels om het te doden.