Linux Kill Process av PID

Linux Kill Process av PID
I Linux (og de fleste moderne operativsystemer) krever avslutning en prosess kraftig å sende et passende terminalsignal. Det er flere måter å sende et termineringssignal til en bestemt prosess. Hvis du kjenner PID (prosess -ID) til målprosessen, kan Kill -kommandoen direkte sende termineringssignalet til den.

I denne guiden vil vi demonstrere hvordan du dreper en Linux -prosess av PID -en.

PID i Linux

Begrepet PID er et forkortelse for "prosessidentifikasjonsnummer". Hver prosess tildeles en unik PID i det øyeblikket de opprettes på systemet. PID -nummer 1 er tilordnet SystemD (init, for eldre systemer). I hovedsak er SystemD eller Init alltid den første prosessen som starter på Linux og er foreldre til alle andre prosesser.

Det er et par verktøy vi kan bruke for å få PID i en målprosess. Den mest populære (og anbefalte) metoden for å få PID er å bruke PS -kommandoen. Det er et innebygd verktøy tilgjengelig på alle Linux-systemer. Lær mer dyptgående om PS-kommandoen i Linux.

For å skrive ut alle løpsprosessene med PID -en, kjør følgende PS -kommando:

$ ps -ef

For enklere navigasjon, rør utgangen til den mindre kommandoen:

$ ps -ef | mindre

Legg merke til at PID -kolonnen viser alle prosesser sortert etter PID. Det er verdien vi leter etter.

Leter etter en bestemt prosess med et spesifikt navn? Da er grep -kommandoen din venn. Den kan søke etter et bestemt mønster i den gitte filen (stdout, i dette tilfellet). For eksempel vil følgende kommando søke etter enhver kjørende Firefox -prosess:

$ ps -ef | grep Firefox

Hvis du vet navnet på målprosessen, kan vi bruke PIDOF -kommandoen for å direkte få PID.

$ pidof Firefox

En annen interessant kommando for å gjøre jobben er PGREP. Den fungerer direkte på listen over kjører som kjører for øyeblikket. PGREP -kommandoen vil ta prosessnavnet som parameter og skrive ut PID for enhver matchende oppføring.

$ PGREP Firefox

Legg merke til PID for målprosessen. Den neste delen av denne artikkelen vil vise frem avslutning av prosessen med PID.

Drepe en prosess

Å drepe en prosess krever å sende et terminalsignal til prosessen. Imidlertid er det ikke et enkelt termineringssignal. Det er flere av dem, som hver opptrer litt annerledes enn de andre. Så det er avgjørende å forstå dem først.

Linux dreper signaler

Kill -kommandoen i Linux er ansvarlig for å sende termineringssignalene. For en detaljert forklaring, sjekk ut denne guiden om Linux Kill -kommandoen. Kort sagt, du forteller Kill Command hvilket signal du skal sende til hvilken prosess (ved hjelp av PID).

For å få den komplette listen over alle oppsigelsessignalene, kjør følgende kommando:

$ Kill -L

For det meste trenger vi imidlertid bare en håndfull av dem. Her er detaljerte forklaringer på de vanligste termineringssignalene du bør vite om.

  • Sigup (1) - Kontrollterminalen blir hengt opp eller kontrollerende prosessen er død. I en slik situasjon vil Sigup laste inn konfigurasjonsfilene og åpne/lukke loggfiler på nytt.
  • Sigkill (9) - Det er et direkte drapssignal til målprosessen. Det skal brukes som siste utvei for å avslutte en prosess. Hvis en prosess avsluttes ved hjelp av Sigkill, vil den ikke lagre data eller rengjøring ved avslutning av prosessen.
  • Sigterm (15) - Den sender et termineringssignal til målprosessen. Sigterm er standardsignalet å sende. Det anses også som den sikreste metoden for å avslutte en prosess.

Drepe en prosess ved hjelp av drap

Dette er standard måten å avslutte en målprosess på Linux på. Kill -kommandoen følger følgende kommandostruktur:

$ Kill -

For å sende sigterm til en prosess, vil kommandoen for eksempel se slik ut:

$ Kill -15

Tilsvarende, hvis du vil sende Sigkill, bruk følgende kommando:

$ Kill -9

Lær mer om Linux Kill-kommandoen med dyptgående forklaringer og eksempler.

Drepe flere prosesser ved bruk av Killall

Killall -kommandoen fungerer som Kill. I stedet for å definere en spesifikk PID, bruker den imidlertid prosessnavnet og sender det spesifiserte termineringssignalet til alle prosesser som samsvarer med navnet.

Kommandostrukturen til Killall ser slik ut:

$ Killall -

Følgende Killall -kommando vil for eksempel sende sigTm til alle de løpende Firefox -prosessene:

$ Killall -15 Firefox

Sjekk ut denne guiden på Linux Killall -kommandoen for detaljerte forklaringer med eksempler. Det anbefales også å sjekke ut mannssiden til Killall:

$ Man Killall

Drepe flere prosesser ved hjelp av pkill

I likhet med Killall -kommandoen, kan Pkill også slå opp prosesser basert på navnet og sende det spesifiserte termineringssignalet. Kommandostrukturen er nesten lik også;

$ pkill -

Bruk for eksempel følgende Pkill -kommando for å avslutte Firefox -prosessen med Sigterm:

$ pkill -15 Firefox

Som alltid, sjekk mannsiden til Pkill for dyptgående forklaringer med alle nyansene:

$ mann pkill

Siste tanker

Denne guiden viser forskjellige måter å drepe en prosess av sin PID. Det demonstrerer også alternative metoder ved å bruke prosessnavnet i stedet for PID. Det er alltid bedre å ha flere verktøy til din disposisjon. Her brukte vi PS- og PGREP -kommandoer for å finne PID og Kill, Pkill og Killall -kommandoer for å drepe prosesser.

I mange situasjoner kan det være lurt å bli kvitt irriterende bakgrunnsprosesser som ikke fungerer. Lær mer om å identifisere bakgrunnsprosesser i Linux. Deretter, etter metodene i denne guiden, kan du enkelt bli kvitt uønskede.
Glad databehandling!