Hvordan drepe prosesser ved hjelp av Linux

Hver så ofte et program henger, i så fall trenger du en metode for å drepe det. Linux tilbyr flere tilnærminger for å tvinge opp programmer fra skallet.

Slik bruker du 'killall'-kommandoen

De Drep alle kommando dreper alle prosessene etter navn. Det betyr at hvis du har tre versjoner av det samme programmet kjører, dreper killall-kommandoen alle tre.

Åpne for eksempel et lite program som en bildeviser. Åpne nå en annen kopi av den samme bildeviseren. Dette eksemplet bruker Xviewer, som er en klone av Eye Of Gnome.

Åpne en terminal og skriv inn følgende kommando:

killall xviewer

Begge forekomster av programmet lukkes.

Drep den eksakte prosessen

Killall-kommandoen kan gi merkelige resultater. Hvis du har et kommandonavn som er mer enn 15 tegn langt, fungerer killall-kommandoen bare på de første 15 tegnene. Hvis du derfor har to programmer som deler de samme første 15 tegnene, kanselleres begge programmene selv om du bare ønsket å drepe ett.

For å komme rundt dette kan du spesifisere følgende bryter, som bare dreper filer som samsvarer med det eksakte navnet.

killall -e

Ignorer sak når du dreper programmer

For å sikre at killall-kommandoen ignorerer store og små bokstaver til programnavnet du oppgir, bruk følgende kommando:

killall -I
killall --ignore-case

Drep alle programmer i samme gruppe

Når du kjører en kommando som den følgende, oppretter den to prosesser:

ps -ef | mindre

En kommando er for ps -ef del, som viser alle kjørende prosesser på systemet ditt, og utdataene sendes til mindre kommando. Begge programmene tilhører samme gruppe, som er bash.

For å drepe begge programmene samtidig, kjør følgende kommando:

killall -g

For å drepe alle kommandoer som kjører i et bash-skall for eksempel, kjør følgende:

killall -g bash

For å liste opp alle gruppene som kjører, kjør følgende kommando:

ps -g

Få bekreftelse før du dreper programmer

Selvfølgelig er killall-kommandoen en kraftig kommando, og du vil ikke ved et uhell drepe feil prosesser.

Når du bruker følgende bryter, blir du spurt om du er sikker før hver prosess blir drept.

killall -i

Drep prosesser som har pågått i en viss tid

Tenk deg at du har kjørt et program og det tar mye lengre tid enn du håpet.

Du kan drepe kommandoen på følgende måte:

killall -o h4

De h i kommandoen ovenfor står for timer – denne kommandoen dreper prosesser som kjører i fire timer eller lenger.

Spesifiser en av følgende tidsmilepæler:

  • s: sekunder
  • m: minutter
  • h: timer
  • d: dager
  • w: uker
  • M: måneder
  • y: år

Alternativt, for å drepe kommandoer som nettopp har begynt å kjøre, bruk følgende bryter:

killall -y h4

Denne gangen dreper kommandoen killall alle programmer som kjører i mindre enn 4 timer.

Ikke fortell meg når en prosess ikke er drept

Som standard, hvis du prøver å drepe et program som ikke kjører, får du følgende feilmelding:

programnavn: ingen prosess funnet

Hvis du ikke vil bli fortalt om prosessen ikke ble funnet, bruk følgende kommando:

killall -q

Bruke regulære uttrykk

I stedet for å spesifisere navnet på et program eller kommando, spesifiser et regulært uttrykk slik at alle prosesser som samsvarer med det regulære uttrykket lukkes av killall-kommandoen.

For å bruke et regulært uttrykk, bruk følgende kommando:

killall -r 

Drep programmer for en spesifikk bruker

For å drepe et program som eies av en bestemt bruker, bruk -u bytte om:

killall -u 

Utelat programnavnet for å avslutte alle denne brukerens prosesser.

Vent til killall er ferdig

Som standard returnerer killall til terminalen når du kjører den, men du kan tvinge killall til å vente til alle spesifiserte prosesser er lukket før du returnerer deg til terminalvinduet.

Kjør følgende kommando:

killall -w

Hvis programmet aldri dør, så fortsetter også killall å leve videre.