Android

Dræb kommandoen i linux

How to print from your iPhone, iPad, or iPod touch — Apple Support

How to print from your iPhone, iPad, or iPod touch — Apple Support

Indholdsfortegnelse:

Anonim

Linux er et fantastisk og avanceret operativsystem, men det er ikke perfekt. Ind imellem kan nogle applikationer begynde at opføre sig uberettiget og blive reagerede eller begynde at forbruge en masse systemressourcer. Ikke-svarende applikationer kan ikke genstartes, fordi den originale ansøgningsproces aldrig lukker helt ned. Den eneste løsning er enten at genstarte systemet eller dræbe ansøgningsprocessen.

Der er flere hjælpeprogrammer, der giver dig mulighed for at afslutte forkerte processer med at kill det, der er det mest anvendte.

kill Kommando

kill er et shell, der er indbygget i de fleste Bourne-afledte skaller, såsom Bash og Zsh. Kommandoadfærden er lidt forskellig mellem skaller og den selvstændige /bin/kill eksekverbare.

Brug kommando- type til at vise alle placeringer på dit system, der indeholder kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Outputet ovenfor fortæller, at shell-indbygget har prioritet frem for den enkeltstående eksekverbare, og den bruges, hver gang du skriver kill . Hvis du vil bruge den binære, skal du indtaste den fulde sti til filen /bin/kill ., vi bruger Bash indbygget.

Syntaks for kill kommandoen har følgende form:

kill…

kill kommandoen sender et signal til specificerede processer eller procesgrupper, hvilket får dem til at handle i henhold til signalet. Når signalet ikke er specificeret, er det standard til -15 (-TERM).

De mest almindeligt anvendte signaler er:

  • 1 ( HUP ) - Genindlæs en proces. 9 ( KILL ) - Dræb en proces. 15 ( TERM ) - Stop en proces graciøst.

For at få en liste over alle tilgængelige signaler skal du aktivere kommandoen med -l :

kill -l

Signaler kan specificeres på tre forskellige måder:

  1. Brug af nummer (f.eks. -1 eller -s 1 ). Brug af “SIG” præfikset (f.eks. -SIGHUP eller -s SIGHUP ). Uden “SIG” præfikset (f.eks. -HUP eller -s HUP ).

Følgende kommandoer svarer til hinanden:

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

PID'erne, der leveres til kill kommandoen, kan være en af ​​følgende:

  • Hvis PID er større end nul, sendes signalet til processen med ID lig med PID Hvis PID er lig med nul, sendes signalet til alle processer i den aktuelle procesgruppe. Med andre ord sendes signalet til alle processer, der hører til GID for skallen, der påkaldte kill kommandoen. Brug kommandoen ps -efj til at se procesgruppe-id'er (GID'er). Hvis PID er lig med -1 , sendes signalet til alle processer med samme UID som brugeren påkalder kommandoen. Hvis den påkaldende bruger er rod, sendes signalet til alle processer undtagen init og selve dræbeprocessen. Hvis PID er mindre end -1 , sendes signalet til alle processer i procesgruppen eq med GID svarende til den absolutte værdi af PID .

Regelmæssige brugere kan sende signaler til deres egne processer, men ikke dem, der hører til andre brugere, mens rodbrugeren kan sende signaler til andre brugers processer.

Afslutning af processer ved hjælp af kill kommandoen

For at afslutte eller dræbe en proces med kill kommandoen skal du først finde proces-id-nummeret (PID). Du kan gøre dette ved hjælp af forskellige kommandoer som top , ps , pidof og pgrep .

Lad os sige, at Firefox-browseren er ikke reagerer, og du er nødt til at dræbe Firefox-processen. Brug pidof kommandoen til at finde browser-PID'er:

pidof firefox

Kommandoen udskriver ID'erne på alle Firefox-processer:

6263 6199 6142 6076

Når du kender processenumrene, kan du afslutte dem alle ved at sende TERM signalet:

kill -9 2551 2514 1963 1856 1771

I stedet for at søge efter PID'er og derefter afslutte processerne, kan du kombinere ovenstående kommandoer til en:

kill -9 $(pidof firefox)

Genindlæsning af processer ved hjælp af kill kommandoen

En anden almindelig brugssag til kill er at sende HUP signalet, der fortæller processerne at genindlæse dets indstillinger.

For eksempel for at genindlæse Nginx skal du sende et signal til masterprocessen. Proces-id'et for Nginx-masterprocessen kan findes i nginx.pid filen, som typisk er placeret i /var/run biblioteket.

Brug cat kommandoen til at finde master-PID:

cat /var/run/nginx.pid

30251

Når du har fundet master PID, skal du indlæse Nginx-indstillingerne igen ved at skrive:

sudo kill -1 30251

Kommandoen ovenfor skal køres som root eller bruger med sudo-privilegier.

Konklusion

kill kommandoen bruges til at sende et signal til processer. Det mest hyppigt anvendte signal er SIGKILL eller -9 , der afslutter de givne processer.

dræb terminal