Kako zaustaviti Linux proces koristeći Kill, Pkill i Killall


U Linuxu, prekidanje procesa odnosi se na prekid ili zaustavljanje izvršavanja programa koji je pokrenut. Svakom pokrenutom procesu dodijeljen je jedinstveni identifikacijski broj poznat kao ID procesa (PID), koji pomaže sustavu da prati trenutno aktivne procese.

U ovom ćemo članku saznati više o procesu ukidanja Linuxa i kako pronaći i prekinuti proces pomoću različitih alata i naredbi u Linuxu.

Što je Linux proces

Jednostavno rečeno, proces je poput programa koji se trenutno izvodi na sustavu, a svaki proces ima svoj poseban ID (PID) broj. Međutim, ponekad se pokrenuti program ili proces može loše ponašati ili prestati reagirati ili koristiti previše resursa sustava.

Kada se to dogodi, moramo zaustaviti ili “ukinuti” proces i tu je ukinuti naredba korisna.

Što je naredba Kill

Naredba “ukini” ključni je uslužni program koji korisnicima omogućuje slanje signala (zaustavljanje ili prekid) procesima koji se trenutno izvode, dajući im upute da elegantno izađu ili prisilno prekinu proces.

Naredba kill je korisna kada trebate upravljati i kontrolirati aktivnosti različitih programa na vašem Linux sustavu kao što su:

  • Za zaustavljanje bilo kojeg automatiziranog procesa.
  • Zaustaviti proces koji je slučajno započet.
  • Za zaustavljanje procesa koji koristi previše memorije.
  • Za prisilno prekidanje bilo kojeg pokrenutog procesa u Linuxu.
  • Za zaustavljanje procesa koji se izvodi u pozadini.

Korištenje naredbe kill iz /usr/bin pruža vam neke dodatne značajke za ubijanje procesa prema nazivu procesa koristeći pkill, koji identificira procese prema njihova imena.

Kako pronaći ID ili naziv procesa

Prije nego prekinete pokrenuti proces, bitno je identificirati njegov ID procesa (PID) ili naziv pomoću sljedeće naredbe ps koja prikazuje informacije o svim pokrenutim procesima na sustavu s njihovim PID-om (ID procesa) i drugim informacijama.

ps -ef

Ako želite pronaći određeni naziv procesa PID, možete upotrijebiti naredbu grep koja će ispisati sve procese koji se izvode na sustavu i filtrirati rezultate kako bi se prikazali samo oni koji sadrže pojam “mariadb<“.

ps -ef | grep mariadb

Alternativno, možete izravno pronaći PID procesa po imenu pomoću naredbe pgrep kao što je prikazano.

pgrep mariadb

Kako ubiti proces u Linuxu

Prije nego što ubijete, zaustavite ili prekinete proces, razmislite o dopuštenjima. Ako ste root korisnik, možete zaustaviti bilo koji proces, ali ako ste običan korisnik, trebate dodati “sudo” prije naredbe ili se prebaciti na root pomoću “ su” za korištenje naredbe prekida.

Uobičajena sintaksa za kill naredbu je:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Za kill naredbu Naziv signala može biti:

Jasno iz gornjeg ponašanja:

  • SIGTERM je zadani i najsigurniji način za zaustavljanje procesa.
  • SIGHUP je manje siguran način zaustavljanja procesa od SIGTERM.
  • SIGKILL je najnesigurniji način među gornja tri, za ubijanje procesa koji prekida proces bez spremanja.

U Linuxu postoje različiti signali koje možete koristiti za zaustavljanje, prekid ili pauziranje procesa. Možete ispisati sve dostupne kill signale s njihovim imenima i odgovarajućim brojevima koristeći sljedeću naredbu, koja će prikazati popis

kill -l

Iako postoji više dostupnih signala, ali u većini slučajeva koristimo samo SIGKILL (9) i SIGTERM (15).

Da bismo ubili proces, moramo znati ID procesa procesa. Proces je instanca programa. Svaki put kada se program pokrene, automatski se generira jedinstveni PID za taj proces.

Svaki proces u Linuxu ima pid. Prvi proces koji se pokreće kada se Linux sustav pokrene je – init proces, stoga mu se u većini slučajeva dodjeljuje vrijednost ‘1’.

Init je glavni proces i ne može se prekinuti na ovaj način, što osigurava da glavni proces ne bude slučajno prekinut. Init odlučuje i dopušta da bude ubijen, gdje je kill samo zahtjev za isključivanje.

Prije nego što krenemo naprijed i izvršimo kill naredbu, treba imati na umu neke važne točke:

  • Korisnik može ubiti sve svoje procese.
  • Korisnik ne može ubiti proces drugog korisnika.
  • Korisnik ne može prekinuti procese koje sustav koristi.
  • Root korisnik može ubiti proces na razini sustava i proces bilo kojeg korisnika.

Da biste prekinuli mariadb proces PID, koristite naredbu kill kao što je prikazano.

kill -9 3383

Gornja naredba će ubiti proces koji ima pid=3383, gdje je PID numerička vrijednost procesa.

Drugi način za izvođenje iste funkcije može se prepisati kao.

kill -SIGTERM 3383

Slično, 'kill -9 PID' je sličan 'kill -SIGKILL PID' i obrnuto.

Kako biste potvrdili da je proces prekinut, možete ponovno upotrijebiti ps naredbu.

ps -ef | grep mariadb

Kako ubiti više procesa u Linuxu

Za prekid višestrukih procesa u Linuxu koristeći njihove ID-ove procesa (PID-ove), možete koristiti naredbu kill u kombinaciji s relevantnim PID brojevima.

Prvo identificirajte PID-ove procesa koje želite prekinuti pomoću naredbe ps ili pgrep.

ps aux | grep apache2
OR
pgrep apache2

Nakon što dobijete PID-ove, upotrijebite naredbu kill da ih prekinete.

kill -9 PID1 PID2 PID3

Kako ubiti proces u Linuxu koristeći naziv procesa

Kako bismo prekinuli proces pomoću naziva procesa, koristit ćemo naredbu pkill, koja je verzija naredbe kill koja vam omogućuje spominjanje naziva procesa ili uzorka locirajte proces.

Morate biti svjesni imena procesa prije ubijanja, a unos krivog naziva procesa može vas zeznuti.

pkill mysqld

Što ako proces ima previše instanci i nekoliko podređenih procesa, imamo naredbu ‘killall’ koja uzima naziv procesa kao argument umjesto broja procesa.

Kako ubiti proces u Linuxu pomoću naredbe Killall

Glavna razlika između killall i kill je u tome što killall može prekinuti proces svojim imenom, dok se naredba kill oslanja na ID procesa (pid).

Da biste ubili sve mysql instance zajedno s podređenim procesima, koristite naredbu kako slijedi.

killall mysqld
OR
pkill mysqld

Uvijek možete provjeriti status procesa je li pokrenut ili ne, pomoću bilo koje od naredbi u nastavku.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Alati za nadzor grafičkih sustava Linuxa kao što su htop ili gnome-system-monitor pružaju korisničko sučelje za pronalaženje i zaustavljanje procesa.

Zaključak

To je to za sada od mene. Uskoro se vraćam s još jednom zanimljivom i informativnom temom. Do tada, ostanite s nama i povezani s Tecmintom, te čuvajte svoje zdravlje. Ne zaboravite podijeliti svoje vrijedne povratne informacije u odjeljku s komentarima.