Android

Drep kommando i Linux

Linux Command Line Tutorial For Beginners 15 - kill command

Linux Command Line Tutorial For Beginners 15 - kill command

Innholdsfortegnelse:

Anonim

Linux er et flott og avansert operativsystem, men det er ikke perfekt. En gang i blant kan noen applikasjoner begynne å oppføre seg uberegnelig og bli reagerende eller begynne å konsumere mange systemressurser. Ikke-svarende applikasjoner kan ikke startes på nytt fordi den opprinnelige søknadsprosessen aldri slås helt av. Den eneste løsningen er å enten starte systemet på nytt eller drepe søknadsprosessen.

Det er flere verktøy som lar deg avslutte feil prosesser med å kill det å være det mest brukte.

kill kommandoen

kill er et skall som er innebygd i de fleste Bourne-avledede skjell som Bash og Zsh. Kommandooppførselen er litt forskjellig mellom skjellene og den frittstående /bin/kill kjørbare.

Bruk typekommandoen for å vise alle plasseringer på systemet ditt som inneholder kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Utdataene ovenfor forteller at skallet som er innebygd har prioritet fremfor den frittstående kjørbare, og at den brukes når du skriver kill . Hvis du vil bruke den binære, skriver du inn hele banen til filen /bin/kill ., vil vi bruke Bash innebygd.

Syntaksen til kill har følgende form:

kill…

kill kommandoen sender et signal til spesifiserte prosesser eller prosessgrupper, og får dem til å handle i henhold til signalet. Når signalet ikke er spesifisert, er det standard til -15 (-TERM).

De mest brukte signalene er:

  • 1 ( HUP ) - Last inn en prosess på nytt. 9 ( KILL ) - Drep en prosess. 15 ( TERM ) - Stopp en prosess nådig.

For å få en liste over alle tilgjengelige signaler, påkaller du kommandoen med -l alternativet:

kill -l

Signaler kan spesifiseres på tre forskjellige måter:

  1. Bruke nummer (f.eks. -1 eller -s 1 ). Bruke "SIG" -prefikset (f.eks. -SIGHUP eller -s SIGHUP ). Uten "SIG" -prefikset (f.eks. -HUP eller -s HUP ).

Følgende kommandoer tilsvarer hverandre:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

PID-ene som gis til drapskommandoen, kan være ett av følgende:

  • Hvis PID er større enn null, sendes signalet til prosessen med ID lik PID . Hvis PID er lik null, sendes signalet til alle prosesser i den nåværende prosessgruppen. Med andre ord blir signalet sendt til alle prosesser som tilhører GID av skallet som påkalte drapskommandoen. Bruk ps -efj kommandoen for å vise prosessgruppe-ID-er (GID-er). Hvis PID er lik -1 , sendes signalet til alle prosesser med samme UID som brukeren påkaller kommandoen. Hvis den påkaller brukeren er root, sendes signalet til alle prosesser bortsett fra init og selve drapsprosessen. Hvis PID er mindre enn -1 , sendes signalet til alle prosesser i prosessgruppen eq med GID lik den absolutte verdien av PID .

Vanlige brukere kan sende signaler til sine egne prosesser, men ikke de som tilhører andre brukere, mens rotbrukeren kan sende signaler til andre brukers prosesser.

Avslutte prosesser ved hjelp av kill Command

For å avslutte eller drepe en prosess med drapskommandoen, må du først finne prosess-ID-nummeret (PID). Du kan gjøre dette ved å bruke forskjellige kommandoer som top , ps , pidof og pgrep .

La oss si at Firefox-nettleseren har svart, og du må drepe Firefox-prosessen. For å finne PID-er i nettleseren bruker du pidof kommandoen:

pidof firefox

Kommandoen vil skrive ut ID-ene for alle Firefox-prosesser:

6263 6199 6142 6076

Når du vet prosessnumrene, kan du avslutte dem ved å sende TERM signalet:

kill -9 2551 2514 1963 1856 1771

I stedet for å søke etter PID-er og deretter avslutte prosessene, kan du kombinere kommandoene ovenfor til en:

kill -9 $(pidof firefox)

Last om prosesser ved hjelp av kill Command

En annen vanlig sak for bruk for å kill er å sende HUP signalet, som forteller prosessene om å laste inn innstillingene på nytt.

For å laste inn Nginx for eksempel, må du sende et signal til hovedprosessen. Prosess-IDen til Nginx- nginx.pid kan finnes i nginx.pid filen, som vanligvis ligger i /var/run katalogen.

Bruk kattkommandoen for å finne master PID:

cat /var/run/nginx.pid

30251

Når du fant master PID, laste inn Nginx-innstillingene på nytt ved å skrive:

sudo kill -1 30251

Kommandoen over må kjøres som root eller bruker med sudo-rettigheter.

Konklusjon

kill kommandoen brukes til å sende et signal til prosesser. Det mest brukte signalet er SIGKILL eller -9 , som avslutter de gitte prosessene.

drepe terminal