Sådan dræber du processer ved hjælp af Linux
Ind imellem hænger et program, i hvilket tilfælde du har brug for en metode til at dræbe det. Linux tilbyder flere tilgange til at tvinge terminering af programmer fra skallen.
Sådan bruger du 'killall'-kommandoen
Det Dræb alle kommando dræber alle processer ved navn. Det betyder, at hvis du har tre versioner af det samme program kørende, dræber killall-kommandoen alle tre.
Åbn for eksempel et lille program, såsom en billedfremviser. Åbn nu en anden kopi af den samme billedfremviser. Dette eksempel bruger Xviewer, som er en klon af Øje af Gnome.
Åbn en terminal og skriv følgende kommando:
killall xviewer
Begge forekomster af programmet lukker.
Dræb den nøjagtige proces
Killall-kommandoen kan give mærkelige resultater. Hvis du har et kommandonavn, der er mere end 15 tegn langt, virker killall-kommandoen kun på de første 15 tegn. Hvis du derfor har to programmer, der deler de samme første 15 tegn, annulleres begge programmer, selvom du kun ville slå det ene ihjel.
For at komme uden om dette kan du angive følgende switch, som kun dræber filer, der matcher det nøjagtige navn.
killall -e
Ignorer sager, når programmer dræbes
For at sikre, at killall-kommandoen ignorerer sagen til det programnavn, du angiver, skal du bruge følgende kommando:
killall -I
killall --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
En kommando er for ps -ef del, som viser alle de kørende processer på dit system, og outputtet sendes til mindre kommando. Begge programmer tilhører samme gruppe, dvs bash.
For at dræbe begge programmer på én gang skal du køre følgende kommando:
killall -g
For at dræbe alle kommandoer, der kører i en bash-shell, skal du for eksempel køre følgende:
killall -g bash
For at liste alle de kørende grupper skal du køre følgende kommando:
ps -g
Få bekræftelse før aflivningsprogrammer
Det er klart, at killall-kommandoen er en kraftfuld kommando, og du vil ikke ved et uheld slå de forkerte processer ihjel.
Når du bruger følgende kontakt, bliver du spurgt, om du er sikker, før hver proces afbrydes.
killall -i
Dræb processer, der har kørt i et vist tidsrum
Forestil dig, at du har kørt et program, og det tager meget længere tid, end du håbede.
Du kan dræbe kommandoen på følgende måde:
killall -o h4
Det h i ovenstående kommando står for timer - denne kommando dræber processer, der kører i fire timer eller længere.
Angiv en af følgende tidsmilepæle:
- s: sekunder
- m: minutter
- h: timer
- d: dage
- w: uger
- M: måneder
- y: flere år
Alternativt, for at dræbe kommandoer, der kun lige er begyndt at køre, skal du bruge følgende kontakt:
killall -y h4
Denne gang dræber kommandoen killall alle programmer, der kører i mindre end 4 timer.
Fortæl mig ikke, når en proces ikke er dræbt
Som standard, hvis du prøver at dræbe et program, der ikke kører, får du følgende fejlmeddelelse:
programnavn: ingen proces fundet
Hvis du ikke ønsker at blive fortalt, om processen ikke blev fundet, skal du bruge følgende kommando:
killall -q
Brug af regulære udtryk
I stedet for at angive navnet på et program eller en kommando, skal 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 til en bestemt bruger
For at dræbe et program, der ejes af en bestemt bruger, skal du bruge -u kontakt:
killall -u
Udelad programnavnet for at afslutte alle denne brugers processer.
Vent på, at killall er færdig
Som standard vender killall tilbage til terminalen, når du kører den, men du kan tvinge killall til at vente, indtil alle de specificerede processer er blevet lukket, før du vender tilbage til terminalvinduet.
Kør følgende kommando:
killall -w
Hvis programmet aldrig dør, så fortsætter killall også med at leve videre.