logo

Hur dödar man en process i Linux?

I ett operativsystem finns det många program som utspelar sig på datorns RAM. Dessa program kan köras av OS självt eller av en användare, sådana program kallas 'Processer .' Vanligtvis har en process sin livscykel och avslutas av sig själv när den är klar eller när vi avslutar den manuellt. Men ibland kan en process hänga på på grund av fel i processschemaläggning eller på grund av att den förbrukar mycket RAM eller CPU. I sådana fall måste vi döda processerna manuellt för att rädda vår maskin från oväntat stopp.

Linux tillåter olika verktyg för att döda en felaktig process. För att döda en process måste vi ha processinformationen som t.ex PID, signal och mer .

Lokalisera processerna

För att döda en process måste vi komma åt processinformationen. Det finns olika kommandon för att spåra en process som t.ex topp , ps , grepp, och pidof.

Linux-systemet tillåter oss att döda en process på olika sätt, som t.ex döda en process med dess namn eller process-id (PID). Så vi kommer att använda ovanstående kommandon enligt vårt behov.

Lokalisera processerna med 'top'-kommandot

De topp kommandot används för att lista alla pågående processer i ett Linux-system. Den visar detaljerad information som PID, användarnamn, CPU-användning, tid, utfört kommando och mer.

För att lokalisera processerna, kör kommandot enligt följande:

gör ett sh-skript körbart
 top 

Ovanstående kommando visar de pågående processerna. Tänk på följande utdata:

Döda Process Linux

Vi kan bläddra i processerna genom att scrolla upp och ner på terminalen. Det översta kommandot tillhandahåller olika filter för att filtrera processerna, såsom processnamn, CPU-användning och mer. För att lämna den övre delen, tryck på 'q' nyckel kommer den att återföra dig till terminalen. Men vi kan också använda det traditionella utgångsalternativet genom att trycka på CTRL+C nycklar.

Lokalisera processerna med kommandot ps och grep

De ps kommandot är ett annat sätt att visa processinformationen. Det finns många alternativ som används med kommandot ps, som t.ex till, som betyder:

en : För att visa processerna för alla användare

i : För att visa de processer som används av en viss användare

x : För att visa alla processer. Om vi ​​inte anger alternativet x kommer det inte att visa GUI-processen.

Utför kommandot nedan för att lista alla pågående processer:

 ps aux 

Tänk på följande utdata:

Döda Process Linux

Utdata från ps-kommandot liknar topp kommando. Processnamnet och PID anges i de två första kolumnerna, och processnamnet anges i den allra högra kolumnen.

Kommandot ps är mer användbart än det översta kommandot. Det låter oss filtrera utdata med kommandot grep.

Anta att vi vill filtrera hela processen med användarnamnet javatpo+, kör kommandot enligt följande:

 ps aux | grep javatpo+ 

Ovanstående kommando kommer att filtrera all specificerad process med grep kommando. Tänk på följande utdata:

Döda Process Linux

Ovanstående utdata tillhandahåller ps-kommandot såväl som grep-kommandots funktionalitet tillsammans.

Lokalisera processen med kommandot pidof och pgrep

De pidof kommando låter oss också lokalisera processen. Om vi ​​vill spåra en process med dess namn, kommer kommandot pidof att vara mycket användbart. Den visar PID för processerna när den används med processnamnet.

För att lokalisera PID för en process, kör kommandot pidof enligt följande:

 pidof process_name 

Om vi ​​har den pågående processen med exakt namn krom , kör kommandot enligt följande för att få dess PID.

 pidof chrome 

överväg nedanstående utdata:

Döda Process Linux

Att döda en process

Nu när vi har spårat processerna kan vi döda en process. Det finns olika kommandon som används för att döda en process som t.ex döda , döda , topp, och pkill.

Innan man dödar en process är det nödvändigt att veta vilka processer vi kan döda. Nedan är några viktiga punkter om dödande processer:

  • Om du är en normal användare kan du bara döda de processer som tillhör dig. Du kan inte döda de processer som körs av de andra användarna. De topp och ps till kommandon visar användarna med den relaterade processen.
  • En rootanvändare kan döda alla processer. Men vi kan också lägga till sudo före ett kommando för att köra det som root.
  • I Linux, när en process dödas, sänds en speciell signal till processerna. Även om det finns olika typer av signaler i Linux, men i det här fallet hanterar Linux SIGKILLS och TERMIN signaler. Som standard. Linux skickar SIGTERM, som avslutar processen graciöst. Om du vill döda en process med kraft, använd SIGKILL istället.
  • Linux behåller statusen för processerna tills den är helt borttagen från systemet. Så de underordnade processerna kommer att visas i processlistan tills en överordnad process tas bort.
  • Vi kan inte döda en process om den är inne oavbruten sömn .' Denna situation uppstår när en process utför en in-/utmatningsoperation. Detta tillstånd kan ses i 8thkolumn av topp och ps till kommandot.

Döda en process med kommandot killall

Killall-kommandot är den enklaste tekniken för att döda en process om du känner till det exakta processnamnet, den körs inte av någon annan användare och den är inte i Z- eller D-läge. I kommandot kill all finns det inget behov av att lokalisera processen eller PID. För att döda en process, kör kommandot enligt följande:

 killall firefox 

Ovanstående kommando kommer att döda processen och avsluta firefox-webbläsaren. Tänk på följande utdata:

Döda Process Linux

Om kommandot framgångsrikt dödar processen kommer det inte att ge någon utdata.

För att med våld döda processen, kör killall-kommandot med -SIGKILL enligt följande:

 killall -SIGKILL process_name 

vi kan också använda -9 istället för -SIGKILL.

För att döda en process interaktivt, kör kommandot enligt följande:

 killall -i process_name 

För att döda en process som en annan användare, kör kommandot enligt följande:

 sudo killall process_name 

Vi kan också avbryta en process under en bestämd tidsperiod genom att använda -O och -och flaggor. För att döda en process som har körts i mer än 20 minuter, kör följande kommando: killall -o 20m process_name

För att döda en process som har körts i mindre än 20 minuter, kör följande kommando:

 killall -y 20m process_name 

Förkortningar för att använda tidsperioden är följande:

sekunder: s

minuter: m

timmar: h

dagar: d

veckor: w

månader: M

år: y

Döda en process med kommandot pkill

Ibland vet vi inte det exakta namnet på processen; i sådana fall kommer kommandot pkill att vara det mest användbara verktyget för att döda en process. Det låter oss döda en process genom att ange det matchande namnet på processen. Till exempel, vi vill döda alla processer med matchande namn java, kör kommandot enligt följande:

 pkill java 

det kommer att stänga alla processer som innehåller namnet java. På liknande sätt för att döda en firefox-process, kör kommandot enligt följande:

 pkill fire 

Tänk på följande utdata:

Döda Process Linux

Om kommandot pkill utförs framgångsrikt kommer det inte att visa någon utdata.

För att döda en process med kraft med pkill-kommandot, kör den enligt följande:

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

Döda en process med kommandot kill

Kill-kommandot är det enklaste verktyget för att döda en process; allt vi behöver en PID för en process. När vi väl får PID för processen är det en rättfram process. För att avsluta en process, kör kill-kommandot följt av PID. För att lokalisera PID för en process, använd kommandot top eller ps aux, som förklarats ovan.

För att döda en process som har PID 5296, kör kommandot enligt följande:

 kill 5296 

För att tvångsmässigt avsluta en process, använd alternativet -SIGKILL eller -9:

 kill -SIGKILL 5296 

Ovanstående kommando kommer att avsluta processen med PID 5296.

Döda en process med toppkommando

Det översta kommandot låter oss lokalisera och döda processen. Det är en enkel process att avsluta en process genom att använda toppkommandot. Kör först det översta kommandot för att hitta processen och tryck på K: t' tangenten medan kommandot körs. Det kommer att dyka dig i processdödningsläget, ange PID för processen som du vill döda. Tänk på följande utdata:

Döda Process Linux

Som vi kan se från ovanstående utdata finns det ett alternativ 'PID för att signalera/döda' för att döda processen från processlistan ovan. Skriv in PID för processen och tryck STIGA PÅ nyckel.

Om vi ​​lämnar PID som tomt kommer den att avsluta den översta processen.

Döda en process av System Monitor

Vi kan också avsluta en process av Linuxs grafiska miljö som kallas systemmonitor. Följ stegen nedan för att döda en process genom systemmonitorn:

Steg 1: Sök eller bläddra i systemmonitorn, tryck på enter för att öppna den.

Steg 2: Det kommer att lista alla pågående processer i ditt Linux-system. Tänk på bilden nedan:

Döda Process Linux

Steg 3: Bläddra igenom processen och högerklicka på den som du vill avsluta.

Steg 4: Välj alternativet Döda. Vi kan också använda CTRL+K nycklar för att döda den.