Kako ubiti proces u Linuxu

How Kill Process Linux



Svaki Linux operativni sustav dolazi s naredbom kill. Jedina svrha ovog alata je prekinuti ciljani proces. To je moćan alat koji čini Linux prilično svestranim, posebno na poslužiteljskim i poslovnim poljima gdje velika promjena/ažuriranje može stupiti na snagu bez ponovnog pokretanja cijelog stroja. U ovom članku pokazat ću kako ubiti proces pomoću ubiti , pkill i ubiti .

Ubijanje procesa

Za ubijanje procesa koristit ćemo pregršt alata: ubiti , pkill , i ubiti . Svi oni rade u osnovi na isti način.







Ovi alati ne prekidaju sami proces. Umjesto toga, oni šalju naznačeni signal ciljnom procesu ili grupama procesa. Ako niste naveli neki određeni signal, SIGTERM se šalje kao zadani signal. Međutim, postoji niz podržanih signala, na primjer, SIGKILL, SIGHUP itd.



Evo osnovne naredbene strukture za ubiti , pkill i ubiti .



$ubiti <signal_ili_opcije> <PID(s)>
$ pkill<signal_ili_opcije> <ime_procesa>
$ubiti <opcija> <ime_procesa>

Kad god je moguće, preporučuje se upotreba ubiti .





Ubiti , pkill i ubiti lokacijama

Kill je zadana naredba za prekid procesa.



$ubiti --Pomozite

Pokreće se iz /usr /bin direktorija.

$koji ubiti

Prednost je u tome što omogućuje pristup pkill -u, još jednoj naredbi sličnoj kill, koja omogućuje prekid procesa na temelju njihovog imena.

$pkill--Pomozite

$kojipkill

Neke aplikacije pokreću više procesa iste izvršne datoteke. Ako želite prekinuti brojne procese s istim imenom, upotrijebite alat killall.

$ubiti --Pomozite

$koji ubiti

Navedite sve pokrenute procese

Prvi zadatak je identificirati PID (identifikacijski broj procesa) i/ili naziv procesa koji želite prekinuti. U ovom primjeru koristit ću Firefox kao ciljani proces za prekid. Pokrenite sljedeću naredbu za popis svih pokrenutih procesa na sustavu.

$p.s -DO

Za većinu zadataka moramo znati PID ciljnog procesa. Međutim, u određenim situacijama prikladnije je koristiti naziv procesa.

Ako znate točan naziv ciljnog procesa, možete izravno dobiti PID pomoću pidof .

$pidof <ime_procesa>

Još jedan zanimljiv alat za prikupljanje informacija o ciljnom procesu je pgrep. Posebno je dizajniran za tu svrhu.

$pgrep<opcija> <ime_procesa>

Ubijajte signale

Pogledajmo sada signale koje podržavaju alati za ubijanje. To je ogroman popis. Naravno, nisu svi potrebni za svaku pojedinačnu situaciju. Zapravo, većina situacija zahtijeva samo nekoliko signala.

Prvo, pogledajmo popis koji podržava podršku.

$ubiti -

Postoje 2 načina za definiranje signala koji želite poslati. Možete koristiti cijeli naziv signala ili njegovu ekvivalentnu vrijednost.

$ubiti-<signal> <PID>

Ili,

$ubiti-<signal_vrijednost> <PID>

Najpopularniji signali su SIGHUP (1), SIGKILL (9) i SIGTERM (15). Općenito, SIGTERM je zadani i najsigurniji način za prekid ciljanog procesa.

U slučaju pkill -a, podržani signal je isti kao i kill. Međutim, u slučaju killalla, broj podržanih signala i nazivi signala su različiti.

$ubiti -

Ubijanje procesa

Da bismo ubili proces, potreban nam je PID tog ciljnog procesa. Pod pretpostavkom da imate PID, pokrenite sljedeću naredbu da biste ga ubili.

$ubiti <opcija> <PID>

Ovdje će kill poslati zadani signal SIGTERM PID -ima. Ako želite prekinuti više procesa, navedite sve PID -ove odvojene razmakom.

$ubiti <opcija> <PID_1> <PID_2>

Odredimo koji signal želite poslati cilju.

Želite li prekinuti proces koristeći samo njegovo ime? Koristite pkill.

$pkill<opcija> <ime_procesa>

U nekim slučajevima, određena aplikacija može imati previše pokrenutih procesa. Upisivanje svih tih PID-ova dugotrajno je i zamorno. U takvim scenarijima koristit ćemo alat killall. Prilično je slično ubijanju, ali radi s imenom procesa.

$ubiti <opcija> <ime_procesa>

Na primjer, pri pokretanju Firefoxa pokreće pregršt procesa. Da biste ih sve ubili odjednom, pokrenite ovu naredbu.

$ubitifirefox

Želite li prekinuti sve procese koji se izvode pod određenim korisnikom? Killall može obaviti posao, nema problema. Budite oprezni pri pokretanju ovog programa jer bi to moglo slomiti sustav i stvoriti druge probleme. Neće funkcionirati ako pokušavate prekinuti procese koji se izvode pod drugim korisnikom s većim ovlastima.

$ubiti -u <korisnik>

Sukob dopuštenja

Svojstvene karakteristike korisničke hijerarhije Linuxa primjenjuju se i kada ćete zatvoriti aplikaciju. Korisnik ne može prekinuti procese koji se izvode s većim ovlastima, samo procesi s jednakim/nižim ovlastima. Štoviše, korisnik ne može manipulirati procesima koji se izvode pod drugim korisnikom.

Na primjer, razmotrimo naredbu yes. Ako se zove kao trenutni korisnik, može se lako prekinuti pomoću kill.

$ubiti Da

Što sad ako Da je trčao ispod korijen ? Pozivanje kill kao trenutnog korisnika neće funkcionirati.

Slično, ako je proces pokrenut pod drugim korisnikom, ne možete ga prekinuti s drugog korisničkog računa.

Završne misli

U ovom članku prikazane su samo osnove i uobičajena upotreba ovih naredbi. Ovi alati za ubijanje sposobni su za više od toga. Da biste imali dublje znanje o mogućnostima bilo kojeg alata, preporučujem da provjerite man stranicu.

$čovjek ubiti

$čovjekpkill

Uživati!