Cum să omorâți un proces în Linux

Gestionarea proceselor în Linux: Ghid complet pentru începători

Cu toții am experimentat momente frustrante când computerul nostru se mișcă lent, întâmpinând dificultăți chiar și în sarcinile cele mai simple. În Windows, avem la dispoziție Task Manager pentru a identifica și opri procesele care consumă resurse excesive. Însă, în Linux, dispunem de o varietate de instrumente și comenzi, atât în linia de comandă (CLI), cât și cu interfață grafică (GUI), pentru a gestiona eficient aceste sarcini. Acest articol vă va ghida prin diverse metode de a opri un proces în Linux, folosind atât linia de comandă, cât și interfața grafică.

Ce reprezintă procesele în Linux?

În Linux, fiecare instanță activă a unui program este denumită „proces”, în timp ce fișierele executabile sunt numite programe. Când un program este lansat, se creează un proces, căruia i se atribuie un identificator unic format din 5 cifre, cunoscut drept „ID de proces”. După ce un proces își încheie execuția sau este oprit forțat, ID-ul său este alocat următorului proces din listă.

Oprirea proceselor prin linia de comandă

Chiar dacă utilizarea terminalului poate părea intimidantă la început, gestionarea proceselor prin linia de comandă devine mult mai simplă odată ce înțelegeți comenzile și opțiunile disponibile.

Semnalele de terminare

Când un proces este oprit, indiferent că se face prin interfață grafică sau linia de comandă, kernel-ul trimite un semnal de terminare procesului. Acesta va reacționa în funcție de semnalul primit. Fiecare semnal are un număr specific, facilitând înțelegerea rapidă de către program. Iată câteva semnale esențiale:

Semnal Valoare numerica Descriere
SIGHUP 1 „Signal Hangup” – trimis când terminalul este închis sau când utilizatorul încheie procesul.
SIGKILL 9 „Signal Kill” – trimis când procesul trebuie oprit imediat.
SIGTERM 15 „Signal Termination” – trimis pentru a încheia un proces și a elibera resursele utilizate.
SIGSTOP 19 (ARM, x86); 17 (ALPHA); 23 (MIPS); 24 (PA-RISC) „Signal Stop” – trimis când procesul trebuie întrerupt temporar și reluat ulterior.

Cele mai frecvent utilizate semnale sunt SIGKILL (9) și SIGTERM (15).

Identificarea ID-urilor de proces

Înainte de a opri un proces, este necesar să îi cunoașteți detaliile, precum ID-ul și timpul de rulare. Pentru a obține aceste informații, utilizați comanda ps:

ps

Comanda ps afișează o listă lungă de procese, ceea ce poate îngreuna găsirea celui dorit. Pentru a facilita căutarea, puteți combina comanda ps cu grep, folosind o conductă:

ps | grep <nume_proces>

Pentru o metodă mai directă, utilizați comanda pidof pentru a afișa doar ID-ul unui proces specific:

pidof <nume_proces>

Terminarea proceselor cu kill

După ce ați identificat ID-ul procesului, comanda kill este cea mai comună metodă de a opri un program în Linux. Sintaxa este:

kill <semnal> <id_proces>

Parametrul <semnal> este opțional, iar implicit comanda kill trimite semnalul SIGTERM (15). Puteți utiliza oricare alt semnal, menționând valoarea numerică sau numele acestuia.

Terminarea proceselor cu pkill

Dacă găsiți incomodă căutarea ID-ului de proces, comanda pkill este o alternativă utilă. Aceasta caută procesele care se potrivesc cu un anumit model și le oprește. Sintaxa este:

pkill <optiuni> <model>

Opțiunile comune pentru pkill includ:

Opțiune Descriere
-n Selectează doar cel mai recent proces care se potrivește cu ID-ul.
-u Selectează procesele deținute de un anumit utilizator.
-x Selectează procesele care se potrivesc exact cu modelul.

Această comandă este utilă mai ales când mai mulți utilizatori lucrează la instanțe diferite ale aceluiași program. De exemplu, pentru a opri instanța „gedit” a utilizatorului „intel”, folosiți:

pkill -u intel gedit

Terminarea proceselor cu killall

Comanda killall este similară cu kill, dar oprește toate procesele care corespund numelui specificat, indiferent de utilizator. Implicit, trimite semnalul SIGTERM, dar poate fi specificat un altul. killall nu se poate opri pe sine, dar poate termina alte instanțe ale comenzii. Sintaxa este:

killall <optiuni> <nume_proces>

Opțiunile pentru killall includ:

Opțiune Descriere
-r Interpretează nume_proces ca un șablon regex, oprind procesele potrivite.
-u Oprește procesul specific deținut de un anumit utilizator.
-o Oprește procesele mai vechi decât o anumită oră.
-y Oprește procesele mai noi decât o anumită oră.

Comanda killall este utilă pentru a închide mai multe instanțe ale aceluiași proces sau toate procesele unui anumit proprietar. De exemplu, pentru a opri toate procesele „sleep 500”, folosiți:

killall -v sleep

Oprirea proceselor cu top/htop

Aceste metode sunt utile când nu știți ce procese consumă resurse excesive. Ambele comenzi vă permit să vizualizați și să încheiați rapid procesele care rulează. Pentru a utiliza comanda top, tastați:

top

Ieșirea top este structurată în coloane:

  • PID: ID-ul procesului.
  • Utilizator: Proprietarul procesului.
  • PR: Prioritatea procesului.
  • NI: Valoarea de prioritate setată de utilizator.
  • VIRT: Memoria virtuală utilizată.
  • RES: Memoria fizică utilizată.
  • SHR: Memoria partajată.
  • S: Starea procesului (D=somn neîntrerupt, R=rulează, S=dormit, T=oprit, Z=zombie).
  • %CPU: Procentul de CPU utilizat.
  • %MEM: Procentul de RAM utilizat.
  • TIME+: Timpul total de rulare.
  • Comandă: Comanda folosită pentru a lansa procesul.

Dacă nu cunoașteți ID-ul procesului, navigați prin listă cu săgețile sau căutați numele folosind tasta „L”. Odată găsit, apăsați „k” pentru a opri procesul, introduceți ID-ul sau lăsați-l pe cel evidențiat și apăsați „ENTER”. Apoi introduceți semnalul de terminare și apăsați „ENTER”. Pentru a reveni la terminal, apăsați „q”.

Comanda top este detaliată, dar mai puțin intuitivă pentru începători. Comanda htop oferă o interfață mai prietenoasă și o vizualizare separată a detaliilor. Nu este preinstalată, deci trebuie instalată cu:

sudo apt install -y htop

Pentru a utiliza htop, introduceți:

htop

Pentru a opri un proces, navigați la numele lui, apăsați „F9” și apoi „Enter”. Pentru a căuta, apăsați „F3”, introduceți numele și apăsați „Enter”. Odată evidențiat procesul, apăsați „F9” și „Enter” pentru a-l închide.

Oprirea proceselor cu System Monitor

Dacă preferați o metodă grafică, puteți folosi System Monitor. Acesta este disponibil în toate distribuțiile Linux. Deschideți System Monitor din meniul aplicațiilor și urmați pașii:

1. Accesați fila „Procese”. Aici veți vedea toate procesele active. Folosiți „CTRL+F” pentru a căuta un proces, selectați-l și faceți clic pe „Încheierea procesului”.

2. Veți primi o solicitare de confirmare. Faceți clic pe „Încheierea procesului” pentru a opri procesul.

Întrebări frecvente

Cum opresc toate procesele în Linux?

Pentru a opri toate procesele unui anumit utilizator, folosiți pkill sau killall, după cum urmează:

pkill -u <nume_utilizator>

killall -u <nume_utilizator>

Pentru a opri toate procesele, inclusiv sistemul init, apăsați „ALT + Prt Sc + o”.

Este sigur să opresc un proces?

Oprirea proceselor neesențiale eliberează resurse, îmbunătățind performanța sistemului. Totuși, evitați să opriți procesele esențiale pentru funcționarea sistemului de operare.

Ce sunt procesele de fundal?

Procesele de fundal rulează independent de instanța shell și pot fi vizualizate cu comenzile top, htop, ps etc.

Ce este un proces zombie?

Un proces zombie este un proces oprit de utilizator, dar care încă ocupă memorie.

Ce face CTRL+Z în Linux?

CTRL+Z trimite semnalul SIGTSTP, care suspendă procesul și îl trimite în fundal. Procesul nu poate fi oprit până nu este readus în prim-plan.

Oprirea simplă a proceselor în Linux

Gestionarea proceselor este o abilitate esențială pentru orice utilizator Linux. Acest articol a prezentat diverse metode, atât prin linia de comandă (killall, pkill), cât și prin interfața grafică. Am detaliat, de asemenea, utilizarea instrumentelor top și htop. Dacă întâmpinați dificultăți, nu ezitați să ne întrebați în secțiunea de comentarii.