Cum să omori procesele folosind Linux

În majoritatea timpului, veți dori ca un program să se încheie cu mijloace proprii sau, dacă este o aplicație grafică, utilizând opțiunea de meniu corespunzătoare sau utilizând o cruce din colț.

De fiecare dată când se va închide un program, caz în care veți avea nevoie de o metodă de ao ucide. S-ar putea să doriți, de asemenea, să ucizi un program care rulează în fundal pe care nu mai trebuie să îl executați.

Acest ghid oferă o metodă de ucidere a tuturor versiunilor aceleiași aplicații care rulează pe sistemul dvs.

Cum se utilizează comanda killall

Comanda killall ucide toate procesele după nume. Asta înseamnă că, dacă aveți trei versiuni ale aceluiași program, comanda killall va ucide toate cele trei.

De exemplu, deschideți un program mic, cum ar fi un vizualizator de imagini. Deschideți acum o altă copie a aceluiași vizualizator de imagini. Pentru exemplul meu am ales Xviewer, care este o clona a lui Eye of Gnome .

Deschideți acum un terminal și tastați următoarea comandă:

omoara-i pe toti

De exemplu, pentru a ucide toate instanțele tipului Xviewer, urmați următoarele:

killall xviewer

Ambele cazuri ale programului pe care l-ați ales să-l omoare se vor închide.

Ucideți procesul exact

killall poate produce rezultate ciudate. Ei bine, aici este un motiv de ce. Dacă aveți un nume de comandă cu o lungime mai mare de 15 caractere, atunci comanda killall va funcționa numai la primele 15 caractere. Dacă, prin urmare, aveți două programe care au aceleași primii 15 caractere, ambele programe vor fi anulate chiar dacă ați vrut doar să o omorâți.

Pentru a obține acest lucru, puteți specifica următorul switch care va ucide numai fișierele care se potrivesc cu numele exact.

Killall -e

Ignorați cazurile când ucizi programe

Pentru a vă asigura că comanda killall ignoră cazul numelui programului pe care îl furnizați, utilizați următoarea comandă:

Killall - Eu
Killall - caz de primire

Omoară toate programele în același grup

Când executați o comandă, cum ar fi următoarea, va crea două procese:

ps -ef | Mai puțin

O comandă este pentru partea ps -ef, care listează toate procesele care rulează pe sistemul dvs., iar ieșirea este transmisă la cea mai mică comandă .

Ambele programe aparțin aceluiași grup care este bash.

Pentru a ucide ambele programe simultan, puteți rula următoarea comandă:

killall -g

De exemplu, pentru a ucide toate comenzile care rulează într-un shell bash executați următoarele:

Killall -g bash

De altfel, pentru a lista toate grupurile care rulează, executați următoarea comandă:

ps -g

Obțineți confirmare înainte de uciderea programelor

Evident, comanda killall este o comandă destul de puternică și nu vrei să ucizi accidental procesele greșite.

Folosind următorul switch veți fi întrebat dacă sunteți sigur înainte ca fiecare proces să fie ucis.

Killall -i

Ucide procesele care au fost executate pentru o anumită cantitate de timp

Imaginați-vă că ați rulat un program și că durează mult mai mult decât ați sperat.

Puteți omoare comanda în felul următor:

Killall -o h4

H în comanda de mai sus este de ore.

De asemenea, puteți specifica oricare dintre următoarele:

Alternativ, dacă doriți să omoare comenzi care au început doar să fie difuzate, puteți utiliza următorul comutator:

ucide-h4

De data aceasta, comanda killall va ucide toate programele care rulează mai puțin de 4 ore.

Nu-mi spuneți când un proces nu este ucis

În mod implicit, dacă încercați să omoare un program care nu se execută, veți primi următoarea eroare:

nume de program: nu sa găsit niciun proces

Dacă nu doriți să vi se spună dacă procesul nu a fost găsit, utilizați următoarea comandă:

Killall -q

Utilizarea expresiilor regulate

În loc să specificați numele unui program sau al unei comenzi, puteți specifica o expresie regulată, astfel încât toate procesele care se potrivesc cu expresia regulată să fie închise de comanda killall.

Pentru a utiliza o expresie regulată, utilizați următoarea comandă:

killall-r

Ucideți programele pentru un anumit utilizator

Dacă doriți să omorâți un program care este rulat de un anumit utilizator, puteți specifica următoarea comandă:

Killall -u

Dacă doriți să omorâți toate procesele pentru un anumit utilizator, puteți omite numele programului.

Așteaptă Pentru a termina

În mod implicit killall va reveni direct la terminal când îl executați, dar puteți forța killall să așteptați până când toate procesele specificate au fost închise înainte de a vă întoarce la fereastra terminalului.

Pentru aceasta, rulați următoarea comandă:

Killall -w

Dacă programul nu moare, atunci killall va continua, de asemenea, să trăiască.

Semnale semnale semnale

În mod implicit, comanda killall trimite semnalul SIGTERM la programe pentru a le închide și aceasta este metoda cea mai curată pentru uciderea programelor.

Există totuși alte semnale pe care le puteți trimite folosind comanda killall și le puteți lista utilizând următoarea comandă:

Killall -l

Lista returnată va fi ceva de genul:

Această listă este extrem de lungă. Pentru a citi ce înseamnă aceste semnale, rulați următoarea comandă:

semnal om 7

În general, ar trebui să utilizați opțiunea implicită SIGTERM, dar dacă programul refuză să moară, puteți folosi SIGKILL, care obligă programul să se închidă, deși într-un mod nedemn.

Alte modalități de a ucide un program

Există 5 alte modalități de a ucide o aplicație Linux așa cum este evidențiată în ghidul conectat.

Cu toate acestea, pentru a vă salva efortul de a face clic pe link-ul aici este o secțiune care arată ce sunt aceste comenzi sunt de ce ați putea folosi aceste comenzi peste killall.

Prima este comanda kill. Comanda killall, așa cum ați văzut, este mare la uciderea tuturor versiunilor aceluiași program. Comanda kill este concepută pentru a ucide un proces la un moment dat și este, prin urmare, mai vizată.

Pentru a rula comanda kill, trebuie să cunoașteți procesul de identificare a procesului pe care doriți să-l omorâți. Pentru aceasta puteți folosi comanda ps .

De exemplu, pentru a găsi o versiune în execuție a Firefox, puteți rula următoarea comandă:

ps -ef | grep firefox

Veți vedea o linie de date cu comanda / usr / lib / firefox / firefox la sfârșit. La începutul liniei veți vedea ID-ul dvs. de utilizator și numărul după ID-ul utilizatorului este ID-ul procesului.

Folosind ID-ul procesului, poți să-l omori pe Firefox executând următoarea comandă:

ucide -9

O altă modalitate de a ucide un program este folosirea comenzii xkill. Acest lucru este folosit în general pentru a ucide aplicațiile grafice greșite.

Pentru a ucide un program, cum ar fi Firefox, deschideți un terminal și executați următoarea comandă:

xkill

Cursorul va trece acum la o cruce albă mare. Deplasați cursorul peste fereastra pe care doriți să o omorâți și faceți clic cu butonul stâng al mouse-ului. Programul va iesi imediat.

Un alt mod de a ucide un proces este prin utilizarea comenzii de top Linux. Comanda superioară afișează toate procesele care rulează în sistemul dvs.

Tot ce trebuie să faceți pentru a ucide un proces este apăsarea tastei "k" și introduceți ID-ul procesului aplicației pe care doriți să o omorâți.

Mai devreme în această secțiune, comanda kill și vă cere să găsiți procesul folosind comanda ps și apoi să omorâți procesul utilizând comanda kill.

Aceasta nu este cea mai simplă opțiune prin orice mijloace.

În primul rând, comanda ps returnează o mulțime de informații de care nu aveți nevoie. Tot ce ați vrut a fost ID-ul procesului. Puteți obține ID-ul de proces mai simplu executând următoarea comandă:

pgrep firefox

Rezultatul comenzii de mai sus este pur și simplu ID-ul procesului de Firefox. Acum puteți rula comanda kill, după cum urmează:

ucide

(Înlocuiți cu ID-ul real al procesului returnat de pgrep).

Este, de fapt, mai ușor, cu toate acestea, să furnizați pur și simplu numele programului la pkill după cum urmează:

pkill firefox

În cele din urmă, puteți utiliza un instrument grafic, cum ar fi cel furnizat împreună cu Ubuntu numit "System Monitor". Pentru a rula "System Monitor", apăsați tasta super (tasta Windows pe majoritatea calculatoarelor) și tastați "sysmon" în bara de căutare. Când apare pictograma monitorului sistemului, faceți clic pe acesta.

Monitorul de sistem prezintă o listă de procese. Pentru a termina un program într-un mod curat, selectați-l și apăsați tasta de terminare din partea de jos a ecranului (sau apăsați CTRL și E). Dacă aceasta nu funcționează, faceți clic dreapta și alegeți "Kill" sau apăsați CTRL și K pe procesul pe care doriți să-l omorâți.