Cum să omorâți procesele din terminalul Linux

Eliminarea unui proces: Ghid practic din linia de comandă Linux sau macOS

Uneori, singura soluție pentru a opri un program problematic este să-l închidem forțat. Această acțiune, numită adesea „ucidere” de proces, nu implică nicio violență, ci pur și simplu determinarea unui program să se închidă. În acest articol, vom explora cum să facem acest lucru utilizând linia de comandă în Linux sau macOS.

Ce reprezintă un proces?

Orice program rulează pe computerul tău, de la browserul web la serviciile de sistem, este considerat un proces. Acestea pot fi împărțite în două categorii:

  • Procese din prim-plan: Acestea sunt lansate de utilizator și sunt interactive, putând fi vizibile într-o fereastră de terminal sau ca o aplicație grafică.
  • Procese din fundal: Aceste procese rulează automat, fără a necesita interacțiunea directă a utilizatorului. Exemple includ serviciile și demonii.

Pentru a înțelege mai bine, putem compara procesele cu o echipă de teatru: cele din prim-plan sunt actorii și personalul din fața scenei, iar cele din fundal sunt echipa care lucrează în culise.

Când un proces funcționează defectuos, poate ocupa excesiv resursele sistemului, cum ar fi timpul CPU sau memoria RAM, intrând într-o buclă de calcul sau pur și simplu blocându-se. Aplicațiile grafice pot deveni insensibile la clicurile mouse-ului, iar aplicațiile de terminal pot înceta să mai răspundă la comenzi.

De ce este necesară închiderea forțată a unui proces?

Închiderea forțată a unui proces este necesară atunci când acesta refuză să se închidă în mod normal. Sistemele Linux oferă comenzile kill, pkill și killall pentru a face acest lucru. Aceste comenzi pot fi utilizate pentru a opri orice tip de proces, indiferent dacă este grafic sau de tip terminal, din prim-plan sau fundal.

Comanda kill

Pentru a utiliza comanda kill, trebuie să cunoașteți ID-ul procesului (PID). Comanda ps este utilă pentru a găsi PID-ul unui proces. Utilizați ps -e | less pentru a afișa toate procesele și a le parcurge cu ajutorul tastelor / (căutare înainte) și ? (căutare înapoi). Pentru a filtra rezultatele, puteți utiliza ps -e | grep nume_proces.

După ce ați identificat PID-ul, utilizați kill PID pentru a închide procesul respectiv. De exemplu, kill 2099 va închide procesul cu PID-ul 2099. Comanda kill nu oferă niciun mesaj de confirmare.

Comanda pkill

Comanda pkill permite închiderea proceselor după nume, fără a fi nevoie de PID. Pentru a fi siguri de acuratețea procesului pe care îl închideți, utilizați pgrep nume_proces pentru a afișa PID-urile proceselor cu numele specificat. Apoi, pkill nume_proces va închide procesele corespunzătoare. Atât pkill cât și pgrep funcționează cu termeni de căutare și au aceeași pagină de manual.

Pentru a închide toate procesele Chrome, puteți folosi pkill chrome. Dacă doriți să fiți mai specifici, puteți utiliza opțiunea -f pentru a căuta în linia de comandă a procesului, de exemplu, pgrep -f "ping 192.168.4.22" și pkill -f "ping 192.168.4.22".

Comanda killall

Atenție: Comanda killall pe sistemele Solaris și OpenIndiana poate închide toate procesele care aparțin utilizatorului, iar dacă o folosiți cu drepturi de root sau cu sudo, riscați să reporniți computerul!

killall funcționează similar cu pkill, dar necesită numele exact al procesului. Nu acceptă potriviri parțiale. De exemplu, pentru a închide „shutter”, trebuie să folosiți killall shutter, nu killall shutt.

Opțiunea -y vă permite să închideți procesele mai tinere decât un anumit interval de timp, iar -o vă permite să închideți procesele mai vechi decât un anumit interval. Unitățile de timp sunt s (secunde), m (minute), h (ore), d (zile), w (săptămâni), M (luni) și y (ani). De exemplu, killall -y 2m ana va închide procesul „ana” lansat în ultimele două minute, iar killall -o 1d sshd va închide toate conexiunile ssh mai vechi de o zi.

Comanda Descriere
kill PID Închide procesul cu PID-ul specificat.
pkill nume_proces Închide toate procesele care se potrivesc cu numele specificat.
killall nume_proces Închide toate procesele care se potrivesc exact cu numele specificat.
pgrep nume_proces Afișează PID-urile proceselor care se potrivesc cu numele specificat.

Concluzie

Aceste comenzi vă oferă instrumentele necesare pentru a gestiona procesele problematice. Fiți mereu atenți și verificați de două ori că procesul pe care doriți să îl închideți este cel corect. Utilizați-le cu precauție și aveți grijă să nu întrerupeți procese esențiale ale sistemului.