Svi smo se suočili sa situacijama kada naš računar radi izuzetno sporo, čak i pri obavljanju osnovnih zadataka. U operativnom sistemu Windows, imate na raspolaganju samo Task Manager za pregled i zaustavljanje procesa koji troše veliku količinu memorije. Međutim, u Linuxu, imate čitav spektar komandi i grafičkih alata za upravljanje tim procesima. U ovom članku, predstavićemo nekoliko jednostavnih metoda korišćenja komandne linije (CLI) i grafičkog interfejsa (GUI) za zaustavljanje procesa u Linuxu.
Kako zaustaviti proces u Linuxu (2023)
Pre nego što detaljnije objasnimo kako upravljati procesima u Linuxu, važno je razumeti šta je tačno proces i šta je ID procesa.
Šta su procesi u Linuxu
U Linuxu, svaka pokrenuta instanca programa se naziva „proces“, dok se izvršna datoteka naziva program. Kada se pokrene bilo koji program, kreira se proces, kome se dodeljuje jedinstveni petocifreni identifikacioni broj, poznat kao „ID procesa“. Kada se proces završi sa izvršavanjem ili je nasilno prekinut, njegov ID procesa se dodeljuje sledećem procesu na redu.
Zaustavljanje procesa putem komandne linije u Linuxu
Iako korišćenje terminala može delovati zastrašujuće u poređenju sa grafičkim alatima, upravljanje procesima postaje mnogo lakše kada razumete osnovne komande i njihove opcije.
Signali za zaustavljanje
Kada pokušate da zaustavite proces, bilo putem grafičkog interfejsa ili komandne linije, Linux šalje signal procesu da se zaustavi. Proces reaguje na taj signal na odgovarajući način. Svakom signalu je dodeljen broj koji program brzo prepoznaje. Postoji mnogo vrsta signala, ali mi ćemo objasniti one najvažnije:
Signal | Numerička Vrednost | Opis |
SIGHUP | 1 | Skraćenica od ‘Signal Hangup’. Šalje se kada se terminal zatvori. |
SIGINT | 2 | Skraćenica od ‘Signal Interrupt’. Šalje se kada korisnik prekine proces. |
SIGKILL | 9 | Skraćenica od ‘Signal Kill’. Šalje se kada se proces mora odmah prekinuti. |
SIGTERM | 15 | Šalje se kada je potrebno zaustaviti proces i osloboditi resurse. |
SIGSTOP | 19 (ARM, x86) / 17 (ALFA) / 23 (MIPS) / 24 (PA-RISC) | Znači ‘Signal Stop’. Šalje se kada je potrebno pauzirati proces i nastaviti ga kasnije. |
Najčešće korišćeni signali su SIGKILL (9) i SIGTERM (15).
Identifikacija ID-ova procesa
Pre nego što zaustavite proces, potrebno je da znate neke detalje o procesu, kao što su ID procesa, vreme rada itd. Za prikaz detalja o procesima, koristite komandu ‘ps’:
ps
Korišćenjem komande ‘ps’, potrebno je da pretražujete listu procesa i beležite njihova imena, što može biti naporno. Umesto toga, možete koristiti komandu ‘grep’ zajedno sa ‘ps’ u nizu, kao što je prikazano u nastavku:
ps | grep <ime_procesa>
Da biste pojednostavili stvari, postoji posebna komanda koja prikazuje samo ID procesa za bilo koji pokrenuti proces. Sintaksa za korišćenje komande ‘pidof’ je:
pidof <ime_procesa>
Zaustavljanje procesa pomoću komande ‘kill’
Kada imate ID procesa koji želite da zaustavite, najčešća komanda koja se koristi za zaustavljanje programa u Linuxu je komanda ‘kill’. Sintaksa za korišćenje komande ‘kill’ je:
kill <signal> <proces_id>
Parametar <signal> je opcioni, a komanda ‘kill’ po defaultu šalje signal SIGTERM (15). Možete poslati bilo koji drugi signal koristeći njegovu numeričku vrednost ili njegovo ime iz gornje tabele.
Zaustavljanje procesa pomoću komande ‘pkill’
Ako vam je traženje ID procesa nepraktično, možete koristiti komandu ‘pkill’. Ova komanda traži procese koji odgovaraju određenom obrascu i zaustavlja ih. Sintaksa za korišćenje komande ‘pkill’ je:
pkill <opcije> <obrazac>
Neke od uobičajenih opcija za komandu ‘pkill’ su:
Opcija | Opis |
-n | Bira samo najnovije procese koji se podudaraju sa ID-om procesa. |
-u | Bira procese u vlasništvu određenog korisnika. |
-x | Bira procese koji se tačno podudaraju sa obrascem. |
Ovo je posebno korisno kada više korisnika radi na različitim instancama istog programa i jedna od instanci počne da se ponaša neočekivano. Na primer, na slici ispod zaustavljamo instancu „gedit“ u vlasništvu korisnika „intel“ korišćenjem komande ‘pkill’:
pkill -u intel gedit
Zaustavljanje procesa pomoću komande ‘killall’
Komanda ‘killall’ radi slično kao komanda ‘kill’, ali zaustavlja sve procese koji odgovaraju imenu procesa, bez obzira na korisnika. Po defaultu, ona šalje SIGTERM signal ako drugačije nije navedeno. Važno je napomenuti da komanda ‘killall’ ne može da se zaustavi sama, ali može prekinuti druge instance iste komande. Sintaksa za korišćenje komande ‘killall’ je:
killall <opcije> <ime_procesa>
Neke od opcija za komandu ‘killall’ su:
Opcija | Opis |
-r | Tumači ‘process_name’ kao regularni izraz i zaustavlja sve procese koji odgovaraju tom izrazu. |
-u | Zaustavlja navedeni proces koji je u vlasništvu određenog korisnika. |
-o | Zaustavlja navedene procese koji su stariji (pokrenuti ranije) od određenog vremena. |
-i | Zaustavlja navedene procese koji su mlađi (pokrenuti kasnije) od određenog vremena. |
Komanda ‘killall’ može biti korisna za prekid više instanci istog procesa ili čak svih procesa u vlasništvu određenog korisnika. Ovde, u našem primeru, zaustavljamo sve procese „sleep 500 seconds“ pomoću komande ‘killall’:
killall -v sleep
Zaustavljanje Linux procesa pomoću komande ‘top’/’htop’
Ovaj metod zaustavljanja procesa je koristan kada nemate ideju koji procesi troše najviše resursa. U obe komande, možete se kretati kroz sve pokrenute procese, uključujući i „zombi“ procese, i možete ih brzo prekinuti. Da biste koristili ‘top’ komandu, unesite sledeću sintaksu u terminal:
top
Razumevanje rezultata:
Glavni izlaz komande ‘top’ je podeljen u kolone koje predstavljaju:
- PID – prikazuje ID procesa pokrenutog procesa.
- USER – prikazuje vlasnika procesa.
- PR – prikazuje vrednost prioriteta procesa koju dodeljuje operativni sistem.
- NI – prikazuje „nice“ vrednosti koje korisnik može da koristi za ručno kontrolisanje prioriteta zadatka.
- VIRT – prikazuje količinu virtuelne memorije koju koristi proces.
- RES – prikazuje količinu fizičke memorije koju koristi proces.
- SHR – prikazuje količinu memorije koju dele drugi procesi.
- S – prikazuje trenutno stanje procesa, koje može biti:
- D – neprekidan san.
- R – radi.
- S – spava.
- T – zaustavljen.
- Z – zombi.
- %CPU – prikazuje količinu CPU-a koju proces koristi u procentima.
- %MEM – prikazuje količinu RAM memorije koju proces koristi u procentima.
- TIME+ – prikazuje ukupno vreme rada procesa.
- COMMAND – prikazuje koja komanda je pozvana za proces.
Ako ne znate ID procesa koji želite da zaustavite, možete se kretati kroz listu pomoću strelica ili potražiti ime procesa.
Da biste pretražili ime procesa, pritisnite ‘L’ na tastaturi i unesite ime procesa. Kada pronađete proces, pritisnite ‘k’ da biste zaustavili proces. Zatim unesite ID procesa ili ostavite da bude aktuelno odabrani proces i pritisnite ‘ENTER’. Nakon toga, unesite signal za zaustavljanje i pritisnite ‘ENTER’ da biste ugasili program. Da biste se vratili u terminal, pritisnite ‘q’ na tastaturi.
Iako komanda ‘top’ prikazuje detalje kao što su ID procesa, potrošnja memorije i slično, ona nije baš pogodna za početnike jer ne prikazuje nikakva uputstva za korišćenje. S druge strane, komanda ‘htop’ ima interfejs koji je lakši za korišćenje, čak i za alatku komandne linije. Osim toga, prikazuje sve detalje u zasebnom prikazu, ne zatrpavajući prozor terminala. ‘htop’ nije unapred instaliran u većini distribucija i potrebno ga je instalirati pomoću komande:
sudo apt install -y htop
Da biste koristili ‘htop’ za upravljanje procesima u Linuxu, koristite sledeću komandu:
htop
Da biste ugasili proces, idite na njegovo ime, pritisnite ‘F9’, a zatim pritisnite ‘Enter’. Ako treba da pretražite i zaustavite neki proces, pritisnite ‘F3’, unesite ime i pritisnite ‘Enter’. Ime procesa će biti označeno, pritisnite ‘F9’, a zatim ‘Enter’ da biste prekinuli proces.
Zaustavljanje procesa pomoću sistemskog monitora u Linuxu
Ako vam je korišćenje komandne linije teško, možete koristiti ugrađeni sistemski monitor koji je dostupan u svakoj Linux distribuciji. Da biste videli kako to funkcioniše, otvorite sistemski monitor iz menija i pratite sledeće korake.
1. Kada se otvori sistemski monitor, videćete tri kartice na vrhu – „Procesi“, „Resursi“ i „Sistem datoteka“. Da biste upravljali procesima, idite na karticu „Procesi“. Ovde ćete videti sve trenutno pokrenute procese. Pritisnite ‘CTRL+F’ da biste pretražili ime procesa. Kliknite na proces koji želite da zaustavite i kliknite na „Zaustavi proces“.
2. Dobićete upit za potvrdu da li zaista želite da zaustavite proces. Kliknite na veliko crveno dugme „Zaustavi proces“ da biste prekinuli proces u Linuxu.
Često postavljana pitanja
Kako mogu zaustaviti sve procese u Linuxu?
Ako treba da zaustavite sve procese (osim shell-a za prijavu, početnih i procesa specifičnih za kernel) za određenog korisnika, koristite komandu ‘pkill’ ili ‘killall’ prema sintaksi:
pkill -u <korisničko_ime>
killall -u <korisničko_ime>
Ako treba da prekinete svaki proces za svakog korisnika, uključujući i „init“ sistem, pritisnite tastere ‘ALT + Prt Sc + o’ na tastaturi.
Da li je u redu zaustaviti proces?
Kada zatvorite bilo koji nebitan pozadinski proces ili korisnički proces koji troši mnogo sistemske memorije, oslobađate resurse koje sada mogu koristiti drugi procesi. Ali pre nego što isključite bilo koji proces, uverite se da ne prekidate esencijalni proces operativnog sistema.
Koji su pozadinski procesi u Linuxu?
U Linuxu, pozadinski procesi su procesi koji se mogu pokrenuti bez instance shell-a ili bilo kakve intervencije korisnika. Mogu se videti pomoću bilo koje od komandi – ‘top’, ‘htop’, ‘ps’, itd.
Šta je „zombi“ proces?
Proces koji je korisnik zaustavio, ali još uvek zauzima memoriju, poznat je kao „zombi“ proces.
Šta ‘CTRL + Z’ radi u Linuxu?
Kada koristite ‘CTRL + Z’, on šalje SIGTSTP signal koji suspenduje proces i šalje ga u pozadinu. Kada je proces u suspendovanom stanju u pozadini, ne možete ga zaustaviti dok se ne vrati u prvi plan.
Lako zaustavljanje procesa u Linuxu
Zaustavljanje procesa koji prekomerno koriste memoriju je veoma važan zadatak koji svaki korisnik treba da nauči. U ovom članku, prikazali smo metode za zaustavljanje procesa koristeći komandnu liniju, uključujući komande kao što su ‘killall’ i ‘pkill’, kao i metode korišćenjem grafičkog interfejsa. Takođe smo detaljno opisali kako da koristite popularne alate kao što su ‘top’ i ‘htop’ za upravljanje procesima na vašem Linux računaru. Ako se suočite sa bilo kakvim problemima dok koristite ove alate, javite nam u komentarima ispod.