Android

Kill naredba u Linuxu

Linux Command Line Tutorial For Beginners 15 - kill command

Linux Command Line Tutorial For Beginners 15 - kill command

Sadržaj:

Anonim

Linux je sjajan i napredan operativni sustav, ali nije savršen. S vremena na vrijeme neke se aplikacije mogu početi ponašati nepromišljeno i postati neodgovorne ili početi trošiti puno sistemskih resursa. Neodgovarajuće aplikacije nije moguće ponovo pokrenuti jer se izvorni postupak prijave nikada ne zaustavi u potpunosti. Jedino rješenje je ili ponovno pokrenuti sustav ili ubiti postupak aplikacije.

Postoji nekoliko uslužnih programa koje vam omogućavaju da zaustavite procese uzbunjivanja i kill biće koje se najčešće koristi.

kill zapovjedništvo

kill je školjka ugrađena u većini školjki koje su proizveli Bourne, kao što su Bash i Zsh. Ponašanje naredbe malo je različito između ljuske i samostalnog izveštaja /bin/kill .

Upotrijebite naredbu type za prikaz svih lokacija na vašem sustavu koje sadrže kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Izlazni ishod govori da ugrađena školjka ima prednost nad samostalnim izvršnim programom i koristi se kad upišete kill . Ako želite koristiti binarni oblik, upišite cijeli put do datoteke /bin/kill ., koristit ćemo Bash izgrađen.

Sintaksa naredbe kill ima sljedeći oblik:

kill…

Naredba kill šalje signal određenim procesima ili procesnim skupinama, uzrokujući da djeluju u skladu s signalom. Kad signal nije naveden, postavlja se na -15 (-TERM).

Signali koji se najčešće koriste su:

  • 1 ( HUP ) - Učitajte postupak. 9 ( KILL ) - ubiti postupak. 15 ( TERM ) - Graciozno zaustavite postupak.

Da biste dobili popis svih dostupnih signala, pozovite naredbu s opcijom -l :

kill -l

Signali se mogu odrediti na tri različita načina:

  1. Korištenje broja (npr. -1 ili -s 1 ).Korištenje prefiksa „SIG“ (npr. -SIGHUP ili -s SIGHUP ). -SIGHUP prefiksa „SIG“ (npr. -SIGHUP ili -s HUP ).

Sljedeće naredbe jednake su jedna drugoj:

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

PID-ovi dani naredbi kill mogu biti jedan od sljedećih:

  • Ako je PID veći od nule, signal se šalje u proces s ID-om jednakim PID . Ako je PID jednak nuli, signal se šalje u sve procese u trenutnoj grupi procesa. Drugim riječima, signal se šalje u sve procese koji pripadaju GID-u ljuske koji je pozvao naredbu kill . Za prikaz ID-a procesne grupe (GID) ps -efj naredbu ps -efj . Ako je PID jednak -1 , signal se šalje u sve procese s istim UID-om kao i korisnik koji poziva naredbu. Ako je korisnik koji se poziva, root je, signal se šalje u sve procese osim inita i samog procesa kill PID manji od -1 , signal se šalje svim procesima u procesnoj grupi eq s GID jednakom apsolutnoj vrijednosti PID .

Redoviti korisnici mogu slati signale u vlastite procese, ali ne one koji pripadaju drugim korisnicima, dok korijenski korisnik može slati signale procesima drugog korisnika.

Zaustavljanje procesa korištenjem naredbe kill

Da biste prekinuli ili ubili proces naredbom kill , prvo morate pronaći ID broj procesa (PID). To možete učiniti pomoću različitih naredbi kao što su top , ps , pidof i pgrep .

Recimo da je preglednik Firefox postao neodgovarajući, te trebate ubiti postupak Firefox. Za pronalaženje PID-a preglednika koristite naredbu pidof :

pidof firefox

Naredba će ispisati ID-ove svih Firefox procesa:

6263 6199 6142 6076

Kad znate brojeve procesa, možete ih prekinuti slanjem TERM signala:

kill -9 2551 2514 1963 1856 1771

Umjesto traženja PID-a i završavanja procesa, gornje naredbe možete kombinirati u jednu:

kill -9 $(pidof firefox)

Ponovno učitavanje procesa pomoću naredbe kill

Drugi uobičajeni slučaj kill je slanje HUP signala, koji procesima nalaže da ponovno učitaju svoje postavke.

Na primjer, da biste ponovno učitali Nginx, morate poslati signal glavnom procesu. ID procesa glavnog procesa Nginx može se naći u datoteci nginx.pid , koja se obično nalazi u imeniku /var/run .

Upotrijebite cat naredbu za pronalazak glavnog PID-a:

cat /var/run/nginx.pid

30251

Jednom kada pronađete glavni PID ponovo učitajte postavke Nginx upisivanjem:

sudo kill -1 30251

Gornja naredba mora se izvoditi kao root ili korisnik sa sudo povlasticama.

Zaključak

Naredba kill koristi se za slanje signala procesima. Najčešće korišteni signal je SIGKILL ili -9 , koji prekida zadane procese.

ubiti terminal