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


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

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

Šta je Linux proces

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

Kada se to dogodi, moramo zaustaviti ili “ubiti” proces i tu nam je zgodna komanda kill.

Šta je Kill Command

Komanda “kill” je ključni uslužni program koji omogućava korisnicima da pošalju signale (zaustave ili prekinu) trenutno pokrenutim procesima, upućujući im da graciozno izađu ili nasilno prekinu.

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

  • Za zaustavljanje bilo kojeg automatiziranog procesa.
  • Za zaustavljanje procesa koji je slučajno pokrenut.
  • Za zaustavljanje procesa koji koristi previše memorije.
  • Da biste nasilno prekinuli bilo koji pokrenuti proces u Linuxu.
  • Za zaustavljanje procesa koji se izvodi u pozadini.

Korištenje naredbe kill iz /usr/bin pruža vam neke dodatne mogućnosti za ubijanje procesa po imenu procesa pomoću pkill, koji identifikuje procese po njihova imena.

Kako pronaći ID procesa ili naziv procesa

Prije okončanja pokrenutog procesa, bitno je identificirati njegov ID procesa (PID) ili ime pomoću sljedeće ps naredbe koja prikazuje informacije o svim pokrenutim procesima na sistemu sa njihovim PID-om (ID procesa) i drugim informacijama.

ps -ef

Ako želite pronaći određeni naziv procesa PID, možete koristiti naredbu grep koja će izlistati sve procese koji se pokreću na sistemu i filtrirati rezultate kako bi prikazali samo one koji sadrže termin “mariadb<“.

ps -ef | grep mariadb

Alternativno, možete direktno pronaći PID procesa po imenu koristeći naredbu pgrep kao što je prikazano.

pgrep mariadb

Kako ubiti proces u Linuxu

Prije nego što ubijete, zaustavite ili prekinete proces, razmislite o dozvolama. 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 s “ su” da koristite naredbu za završetak.

Uobičajena sintaksa za kill komandu je:

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

Za kill komandu Ime signala može biti:

Jasno iz gornjeg ponašanja:

  • SIGTERM je zadani i najsigurniji način da se prekine proces.
  • SIGHUP je manje siguran način zaustavljanja procesa od SIGHUP.
  • SIGKILL je najnesigurniji način od gornja tri, da se prekine proces koji završava proces bez spremanja.

U Linuxu postoje različiti signali koje možete koristiti za zaustavljanje, završetak ili pauziranje procesa. Možete navesti sve dostupne signale ubijanja sa njihovim imenima i odgovarajućim brojevima koristeći sljedeću naredbu, koja će izlistati

kill -l

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

Da bismo ugasili 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 sistem pokrene je – proces init, stoga mu se u većini slučajeva dodjeljuje vrijednost „1“.

Init je glavni proces i ne može biti ubijen na ovaj način, što osigurava da se glavni proces ne ubije slučajno. Init odlučuje i dozvoljava da bude ubijen, gdje je kill samo zahtjev za gašenje.

Prije nego što zakoračimo naprijed i izvršimo kill komandu, treba napomenuti neke važne tačke:

  • Korisnik može ubiti sve svoje procese.
  • Korisnik ne može ubiti proces drugog korisnika.
  • Korisnik ne može ubiti procese koje sistem koristi.
  • Root korisnik može ubiti proces na nivou sistema i proces bilo kojeg korisnika.

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

kill -9 3383

Gornja komanda će ugasiti proces koji ima pid=3383, gdje je PID Numerička vrijednost procesa.

Drugi način da se izvrši ista funkcija može se prepisati kao.

kill -SIGTERM 3383

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

Da potvrdite da je proces prekinut, možete ponovo koristiti ps komandu.

ps -ef | grep mariadb

Kako ubiti više procesa u Linuxu

Da biste prekinuli više procesa u Linuxu koristeći njihove ID-ove procesa (PID), 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

Kada dobijete PID-ove, koristite naredbu kill da biste ih prekinuli.

kill -9 PID1 PID2 PID3

Kako ubiti proces u Linuxu koristeći naziv procesa

Da prekinemo proces koristeći ime procesa, koristit ćemo naredbu pkill, koja je verzija naredbe kill koja vam omogućava da spomenete ime procesa ili obrazac za locirati proces.

Morate biti svjesni imena procesa prije ubijanja, a unošenje pogrešnog naziva procesa može vas zajebati.

pkill mysqld

Šta ako proces ima previše instanci i nekoliko podređenih procesa, imamo naredbu 'killall' koja uzima ime 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 završiti proces svojim imenom, dok se komanda kill oslanja na ID procesa (pid).

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

killall mysqld
OR
pkill mysqld

Uvijek možete provjeriti status procesa da li je pokrenut ili ne, koristeći bilo koju od donjih naredbi.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Linux grafički sistemi za nadgledanje alata 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 sa još jednom zanimljivom i informativnom temom. Do tada, budite u toku i povezani sa Tecmint-om i vodite računa o svom zdravlju. Ne zaboravite podijeliti svoje vrijedne povratne informacije u odjeljku za komentare.