Skip to main content

Sådan dræbes processer ved hjælp af Linux

SIG P220 Elite 10mm (Juni 2025)

SIG P220 Elite 10mm (Juni 2025)
Anonim

Det meste af tiden vil du have et program til ende med egne midler eller, hvis det er en grafisk applikation, ved at bruge den relevante menupunkt eller ved at bruge krydset i hjørnet.

Hvert så ofte vil et program hænge, ​​i hvilket tilfælde skal du bruge en metode til at dræbe den. Du vil måske også gerne dræbe et program, der kører i baggrunden, som du ikke længere behøver at køre.

Denne vejledning indeholder en metode til at dræbe alle versioner af den samme applikation, der kører på dit system.

Sådan bruges Killall Command

Killall-kommandoen dræber alle processer ved navn. Det betyder, at hvis du har tre versioner af det samme program, kører killall kommandoen dræbt alle tre.

For eksempel åbner et lille program en sådan billedfremviser. Nu åbner du en anden kopi af den samme billedfremviser. For mit eksempel har jeg valgt Xviewer, som er en klon af Eye Of Gnome.

Nu åbner du en terminal og skriver følgende kommando:

Dræb alle

For at dræbe alle forekomster af Xviewer skal du skrive følgende:

killall xviewer

Begge forekomster af det program, du har valgt at dræbe, lukkes nu.

Dræb den præcise proces

killall kan producere mærkelige resultater. Nå her er en grund hvorfor. Hvis du har et kommando navn, der er mere end 15 tegn langt, vil killall kommandoen kun fungere på de første 15 tegn. Hvis du derfor har to programmer, der deler de samme 15 tegn, bliver begge programmer annulleret, selvom du kun ønskede at dræbe en.

For at omgå dette kan du angive følgende switch, som kun dræber filer, der matcher det nøjagtige navn.

killall -e

Ignorer sag, når du dræber programmer

For at sikre, at kommandoen killall ignorerer tilfælde af det programnavn, du angiver, skal du bruge følgende kommando:

killall -Ikillall -ignore-case

Dræb alle programmer i samme gruppe

Når du kører en kommando som den følgende, opretter den to processer:

ps -ef | mindre

Én kommando er for ps -ef-delen, som viser alle de kørende processer på dit system, og outputen pipes til den mindre kommando.

Begge programmer tilhører den samme gruppe, som er bash.

At dræbe begge programmer på én gang kan du køre følgende kommando:

killall -g

For at dræbe alle kommandoer, der kører i en bash-shell, skal du køre følgende:

killall-g bash

For øvrigt at liste alle løbende grupper køre følgende kommando:

ps-g

Få bekræftelse inden du dræber programmer

Det er klart, at killall-kommandoen er en ganske kraftfuld kommando, og du vil ikke ved et uheld dræbe de forkerte processer.

Ved hjælp af følgende switch bliver du spurgt, om du er sikker på, før hver proces dræbes.

killall -i

Dræb processer, der har kørt i en vis mængde tid

Forestil dig at du har kørt et program, og det tager meget længere tid end du håbede det ville.

Du kan dræbe kommandoen på følgende måde:

killall -o h4

H i ovennævnte kommando står for timer.

Du kan også angive et af følgende:

  • s - sekunder
  • m - minutter
  • h - timer
  • d-dage
  • w - uger
  • M - måneder
  • y - år

Alternativt, hvis du ønsker at dræbe kommandoer, der kun lige er begyndt at køre, kan du bruge følgende switch:

killall -y h4

Denne gang vil killall-kommandoen dræbe alle programmer, der kører i mindre end 4 timer.

Fortæl mig ikke, når en proces ikke bliver dræbt

Som standard, hvis du forsøger at dræbe et program, der ikke kører, får du følgende fejl:

programnavn: ingen proces fundet

Hvis du ikke vil vide, om processen ikke blev fundet, skal du bruge følgende kommando:

killall -q

Brug af regelmæssige udtryk

I stedet for at angive navnet på et program eller en kommando, kan du angive et regulært udtryk, så alle processer, der matcher det regulære udtryk, lukkes af killall-kommandoen.

For at bruge et regulært udtryk skal du bruge følgende kommando:

killall -r

Dræb programmer for at angive bruger

Hvis du vil dræbe et program, der køres af en bestemt bruger, kan du angive følgende kommando:

killall -u

Hvis du vil dræbe alle processerne for en bestemt bruger, kan du udelade programnavnet.

Vent til killall at afslutte

Som standard kommer killall tilbage direkte til terminalen, når du kører det, men du kan tvinge killall til at vente, indtil alle de angivne processer er lukket, inden du vender tilbage til terminalvinduet.

For at gøre dette køre følgende kommando:

killall -w

Hvis programmet aldrig dør, vil killall også fortsætte med at fortsætte.

Signaler Signaler Signaler

Som standard sender killall-kommandoen SIGTERM-signalet til programmer for at få dem til at lukke, og dette er den reneste metode til at dræbe programmer.

Der er dog andre signaler, du kan sende ved hjælp af killall-kommandoen, og du kan liste dem ved hjælp af følgende kommando:

killall -l

Listen returneret vil være sådan noget:

  • HUP
  • INT
  • AFSLUT
  • SYG
  • FÆLDE
  • Abrt
  • IOT
  • BUS
  • FPE
  • DRÆBE
  • USR1
  • SEGV
  • USR2
  • RØR
  • ALRM
  • SEMESTER
  • STKFLT
  • CHLD
  • CONT
  • HOLD OP
  • TSTP
  • indstillinge
  • TTOU
  • URG
  • XCPU
  • XFSZ
  • VTALRM
  • PROG
  • WYNCH
  • IO
  • PWR
  • SYS
  • UBRUGTE

Denne liste er ekstremt lang. For at læse om, hvad disse signaler betyder, kør følgende kommando:

mand 7 signal

Generelt skal du bruge standard SIGTERM-indstillingen, men hvis programmet nægter at dø, kan du bruge SIGKILL, som tvinger programmet til at lukke, omend på en ubetydelig måde.

Andre måder at dræbe et program på

Der er 5 andre måder at dræbe en Linux-applikation som fremhævet i den linkede vejledning.

Men for at spare dig er indsatsen for at klikke på linket her et afsnit, der viser, hvad disse kommandoer er, hvorfor du kan bruge disse kommandoer over killall.

Den første er kill kommandoen. Killall-kommandoen, som du har set, er fantastisk til at dræbe alle versioner af det samme program. Kill kommandoen er designet til at dræbe en proces ad gangen og er derfor mere målrettet.

For at køre kill-kommandoen skal du kende proces-ID'en for den proces, du ønsker at dræbe. Til dette kan du bruge ps kommandoen.

For eksempel for at finde en kørende version af Firefox kan du køre følgende kommando:

ps -ef | grep firefox

Du vil se en linje med data med kommandoen / usr / lib / firefox / firefox i slutningen. I starten af ​​linjen ser du dit bruger-id og nummeret efter, at bruger-id'et er proces-id'et.

Ved hjælp af proces ID kan du dræbe Firefox ved at køre følgende kommando:

dræb -9

En anden måde at dræbe et program på er ved at bruge kommandoen xkill. Dette bruges normalt til at dræbe fejlbehæftede grafiske applikationer.

At dræbe et program som Firefox åbner en terminal og kører følgende kommando:

xkill

Markøren vil nu skifte til et stort hvidt kryds. Hold markøren over det vindue du ønsker at dræbe og klik med venstre museknap. Programmet afsluttes straks.

En anden måde at dræbe en proces på er at bruge Linux top kommandoen. Den øverste kommando viser alle løbende processer på dit system.

Alt du skal gøre for at dræbe en proces er at trykke på "k" -tasten og indtaste proces-id'en for det program, du ønsker at dræbe.

Tidligere i dette afsnit kommandoen kill og det krævede du finde processen ved hjælp af ps-kommandoen og dræb derefter processen ved hjælp af kill-kommandoen. Dette er ikke den enkleste løsning på nogen måde.

For en ting returnerer ps kommandoen masser af information, du ikke behøver. Alt du ønskede var proces ID. Du kan få proces-id mere simpelthen ved at køre følgende kommando:

pgrep firefox

Resultatet af ovenstående kommando er simpelthen proces-id for Firefox. Du kan nu køre kill kommandoen som følger:

dræbe

(Erstatte med den faktiske proces ID returneret af pgrep).

Det er faktisk nemmere at blot levere programnavnet til pkill som følger:

pkill firefox

Endelig kan du bruge et grafisk værktøj som den, der følger med Ubuntu, kaldet "System Monitor". For at køre "System Monitor" skal du trykke på supernøglen (Windows-tast på de fleste computere) og skrive "sysmon" i søgelinjen. Når systemmonitorikonet vises, skal du klikke på det.

Systemmonitoren viser en liste over processer. For at afslutte et program på en ren måde skal du vælge det og trykke på endeknappen nederst på skærmen (eller tryk på CTRL og E). Hvis dette ikke fungerer, skal du enten højreklikke og vælge "Dræb" eller tryk på CTRL og K på den proces, du ønsker at dræbe.