logo

Hvordan dræber man en proces i Linux?

I et styresystem er der mange programmer, der foregår på computerens RAM. Disse programmer kan køres af OS selv eller en bruger, sådanne programmer kaldes 'Processer .' Normalt har en proces sin livscyklus og bliver afsluttet af sig selv, når den er afsluttet, eller når vi afslutter den manuelt. Men nogle gange kan en proces hænge op på grund af fejl i procesplanlægning eller på grund af forbrug af meget RAM eller CPU. I sådanne tilfælde er vi nødt til at dræbe processerne manuelt for at redde vores maskine fra uventet afbrydelse.

Linux tillader forskellige værktøjer til at dræbe en fejlagtig proces. For at dræbe en proces skal vi have procesinformationen som f.eks PID, signal og mere .

Lokalisering af processer

For at dræbe en proces, skal vi have adgang til procesinformationen. Der er forskellige kommandoer til at spore en proces som f.eks top , ps , greb, og pidof.

Linux-systemet giver os mulighed for at dræbe en proces på forskellige måder, som f.eks dræbe en proces ved dens navn eller proces-id (PID). Så vi vil bruge ovenstående kommandoer efter vores behov.

Lokalisering af processerne ved 'top'-kommando

Det top kommandoen bruges til at liste alle de kørende processer i et Linux-system. Den viser detaljerede oplysninger såsom PID, brugernavn, CPU-brug, tid, udført kommando og mere.

For at finde processerne skal du udføre kommandoen som følger:

kamelhylster python
 top 

Ovenstående kommando viser de kørende processer. Overvej nedenstående output:

Dræb Process Linux

Vi kan gennemse processerne ved at scrolle op og ned på terminalen. Den øverste kommando giver forskellige filtre til at filtrere processerne, såsom procesnavn, cpu-brug og mere. Tryk på for at forlade den øverste sektion 'q' tasten, vil den returnere dig til terminalen. Vi kan dog også bruge den traditionelle exit-mulighed ved at trykke på CTRL+C nøgler.

Lokalisering af processerne ved ps og grep kommando

Det ps kommando er en anden måde at vise procesinformationen på. Der er mange muligheder, der bruges med ps-kommandoen, som f.eks til, hvilket betyder:

en : At vise processerne for alle brugere

i: For at vise de processer, der bruges af en bestemt bruger

x : For at vise alle processerne. Hvis vi ikke angiver x-indstillingen, vil den ikke vise GUI-processen.

Udfør nedenstående kommando for at liste alle de kørende processer:

 ps aux 

Overvej nedenstående output:

Dræb Process Linux

Outputtet af ps-kommandoen ligner top kommando. Procesnavnet og PID er angivet i de to første kolonner, og procesnavnet er angivet i højre kolonne.

Kommandoen ps er mere nyttig end den øverste kommando. Det giver os mulighed for at filtrere outputtet med grep-kommandoen.

Antag, at vi vil filtrere hele processen med brugernavnet javatpo+, udfør kommandoen som følger:

 ps aux | grep javatpo+ 

Ovenstående kommando vil filtrere hele den angivne proces efter grep kommando. Overvej nedenstående output:

Dræb Process Linux

Ovenstående output giver ps-kommandoen såvel som grep-kommandoens funktionalitet sammen.

Lokalisering af processen ved hjælp af pidof og pgrep kommando

Det pidof kommando giver os også mulighed for at lokalisere processen. Hvis vi ønsker at spore en proces ved dens navn, vil pidof-kommandoen være meget nyttig. Den viser processernes PID'er, når den bruges med procesnavnet.

For at finde PID'et for en proces skal du udføre pidof-kommandoen som følger:

 pidof process_name 

Hvis vi har den kørende proces med nøjagtigt navn krom , udfør kommandoen som følger for at få dets PID'er.

 pidof chrome 

overvej nedenstående output:

Dræb Process Linux

At dræbe en proces

Nu hvor vi har sporet processerne, kan vi dræbe en proces. Der er forskellige kommandoer, der bruges til at dræbe en proces som f.eks dræbe , dræbe , top, og pkill.

Før man dræber en proces, er det nødvendigt at vide, hvilke processer vi kan dræbe. Nedenfor er nogle væsentlige punkter om drabsprocesser:

  • Hvis du er en normal bruger, kan du kun dræbe de processer, der tilhører dig. Du kan ikke dræbe de processer, der kører af de andre brugere. Det top og ps til kommandoer viser brugerne med den relaterede proces.
  • En root-bruger kan dræbe alle processerne. Vi kan dog også tilføje sudo før enhver kommando for at udføre den som root.
  • I Linux, når en proces bliver dræbt, sendes et særligt signal til processerne. Selvom der er forskellige typer af signaler i Linux, men i dette tilfælde beskæftiger Linux sig med SIGKILLS og SIGTERM signaler. Som standard. Linux sender SIGTERM, som afslutter processen elegant. Hvis du vil slå en proces ihjel, skal du bruge SIGKILL i stedet.
  • Linux beholder status for processerne, indtil det er helt fjernet fra systemet. Så de underordnede processer vil blive vist i proceslisten, indtil en overordnet proces er slettet.
  • Vi kan ikke dræbe en proces, hvis den er inde 'uafbrydelig søvn .' Denne situation opstår, når en proces udfører en input/output-operation. Denne tilstand kan ses i 8thkolonne af top og ps til kommandoen.

Dræber en proces med killall-kommandoen

Killall-kommandoen er den nemmeste teknik til at dræbe en proces, hvis du kender det nøjagtige procesnavn, den kører ikke af nogen anden bruger, og den er ikke i Z- eller D-tilstand. I kill all-kommandoen er der ingen grund til at lokalisere processen eller PID. For at dræbe en proces skal du udføre kommandoen som følger:

 killall firefox 

Ovenstående kommando vil dræbe processen og afslutte firefox-browseren. Overvej nedenstående output:

Dræb Process Linux

Hvis kommandoen med succes dræber processen, vil den ikke give noget output.

For kraftigt at dræbe processen skal du udføre killall-kommandoen med -SIGKILL som følger:

 killall -SIGKILL process_name 

vi kan også bruge -9 i stedet for -SIGKILL.

For at dræbe en proces interaktivt skal du udføre kommandoen som følger:

 killall -i process_name 

For at dræbe en proces som en anden bruger skal du udføre kommandoen som følger:

 sudo killall process_name 

Vi kan også dræbe en proces i et fast tidsrum ved at bruge -O og -og flag. For at dræbe en proces, der har kørt i mere end 20 minutter, skal du udføre kommandoen nedenfor: killall -o 20m procesnavn

For at dræbe en proces, der har kørt i mindre end 20 minutter, skal du udføre kommandoen nedenfor:

 killall -y 20m process_name 

Forkortelser for brug af tidsperioden er som følger:

sekunder: s

minutter: m

timer: h

dage: d

uger: w

måneder: M

år: y

Dræb en proces med kommandoen pkill

Nogle gange kender vi ikke det nøjagtige navn på processen; i sådanne tilfælde vil kommandoen pkill være det mest nyttige værktøj til at dræbe en proces. Det giver os mulighed for at dræbe en proces ved at indtaste det matchende navn på processen. For eksempel vil vi dræbe alle processer med matchende navn java, udfør kommandoen som følger:

 pkill java 

det vil lukke alle de processer, der indeholder navnet java. På samme måde for at dræbe en firefox-proces skal du udføre kommandoen som følger:

 pkill fire 

Overvej nedenstående output:

Dræb Process Linux

Hvis pkill-kommandoen udføres med succes, vil den ikke vise noget output.

For at dræbe en proces kraftigt med pkill-kommandoen, udfør den som følger:

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

Dræb en proces ved at dræbe kommandoen

Kill-kommandoen er det enkleste værktøj til at dræbe en proces; alt hvad vi behøver en PID af en proces. Når vi først har fået processens PID, er det en ligetil proces. For at afslutte en proces skal du udføre kill-kommandoen efterfulgt af PID. For at finde en process PID skal du bruge top- eller ps aux-kommandoen som forklaret ovenfor.

For at dræbe en proces med PID 5296 skal du udføre kommandoen som følger:

 kill 5296 

For kraftigt at afslutte en proces, brug -SIGKILL eller -9 mulighed:

 kill -SIGKILL 5296 

Ovenstående kommando vil afslutte processen med PID 5296.

Dræb en proces ved topkommando

Den øverste kommando giver os mulighed for at lokalisere og dræbe processen. Det er en ligetil proces at afslutte en proces ved at bruge topkommando. Først skal du udføre den øverste kommando for at finde processen og trykke på 'k'et' tasten, mens kommandoen kører. Det vil dykke dig i procesdræbningstilstanden, indtast PID for den proces, du vil dræbe. Overvej nedenstående output:

Dræb Process Linux

Som vi kan se fra ovenstående output, er der en mulighed 'PID for at signalere/dræbe' for at dræbe processen fra ovenstående procesliste. Indtast PID for processen, og tryk på GÅ IND nøgle.

Hvis vi efterlader PID'et tomt, vil det afslutte den øverste proces.

Dræb en proces af System Monitor

Vi kan også afslutte en proces af Linuxs grafiske miljø kaldet systemmonitor. Følg nedenstående trin for at dræbe en proces gennem systemmonitor:

Trin 1: Søg eller gennemse systemmonitoren, tryk på enter for at åbne den.

Trin 2: Det vil liste alle de kørende processer på dit Linux-system. Overvej billedet nedenfor:

Dræb Process Linux

Trin 3: Gennemse processen, og højreklik på den, som du vil afslutte.

Trin 4: Vælg indstillingen Dræb. Vi kan også bruge CTRL+K nøgler til at dræbe den.