Android

Cum să omori un proces în linux

Como Personalizar La Terminal De Linux [Mi Customización]

Como Personalizar La Terminal De Linux [Mi Customización]

Cuprins:

Anonim

V-ați confruntat vreodată cu situația în care ați lansat o aplicație și, dintr-o dată, în timp ce utilizați aplicația, ea devine nerespectivă și se prăbușește neașteptat? Încercați să porniți din nou aplicația, dar nu se întâmplă nimic, deoarece procesul inițial al cererii nu se oprește cu adevărat complet.

Ei bine, ni s-a întâmplat tuturor la un moment dat, nu-i așa? Soluția constă în încheierea sau uciderea procesului de cerere. Dar cum?

Din fericire, există mai multe utilități în Linux care vă permit să omorați procesele errante., vă vom arăta cum să utilizați comenzile kill , killall și pkill pentru a încheia un proces în Linux.

Principala diferență între aceste instrumente este faptul că pkill încheie procesele bazate pe numărul ID-ul procesului (PID), în timp ce comenzile killall și pkill încetează procesele de rulare bazate pe numele lor și alte atribute.

Utilizatorii obișnuiți își pot ucide propriile procese, dar nu cele care aparțin altor utilizatori, în timp ce utilizatorul root poate ucide toate procesele.

Semnalele de ucidere a sistemului

kill , killall și pkill trimit un semnal dat unor procese sau grupuri de proces specificate. Când nu este specificat niciun semnal, fiecare instrument trimite 15 ( TERM ).

Semnalele cele mai utilizate sunt:

  • 1 (-HUP): pentru a reîncărca un proces. 9 (-KILL): pentru a ucide un proces. 15 (-TERM): pentru a opri cu grație un proces.

Semnalele pot fi specificate în trei moduri diferite:

  • folosind numărul (de exemplu, -1) cu prefixul „SIG” (de exemplu, -SIGHUP) fără prefixul „SIG” (de exemplu, -HUP).

Utilizați opțiunea -l pentru a lista toate semnalele disponibile:

kill -l # or killall -l

Pașii descriși mai jos vor funcționa la toate distribuțiile Linux.

Terminarea proceselor folosind comanda de kill

Pentru a încheia un proces cu comanda kill , mai întâi trebuie să găsiți PID-ul procesului. Puteți face acest lucru folosind diferite comenzi, cum ar fi top , ps , pidof și pgrep .

Să zicem că browserul Firefox nu a răspuns, și trebuie să omori procesul Firefox. Pentru a găsi codul procesului, utilizați comanda pidof :

pidof firefox

Comanda va tipări toate procesele Firefox:

2551 2514 1963 1856 1771

După ce cunoașteți Firefox procesează PID-urile pentru a le încheia, trimiteți semnalul TERM :

kill -9 2551 2514 1963 1856 1771

Terminarea proceselor folosind comanda killall

Comanda killall încheie toate programele care se potrivesc cu un nume specificat.

Folosind același scenariu ca înainte, puteți ucide procesul Firefox tastând:

killall -9 firefox

killall acceptă mai multe opțiuni, cum ar fi trimiterea de semnale către procesele deținute de un utilizator dat, potrivirea numelor de procese cu expresiile obișnuite și timpul de creare. Puteți obține o listă cu toate opțiunile tastând killall (fără niciun argument) pe terminalul dvs.

De exemplu, pentru a încheia toate procesele care rulează ca utilizator „sara”, ar trebui să executați următoarea comandă:

sudo killall -u sara

Terminarea proceselor folosind comanda pkill

pkill încheie procesele care se potrivesc cu modelul dat pe linia de comandă:

pkill -9 firefox

Numele procesului nu trebuie să fie o potrivire exactă.

Cu pkill puteți trimite și un semnal proceselor care sunt deținute de un utilizator dat. Pentru a ucide doar procesele firefox deținute de utilizator „sara”, ar trebui să tastați:

pkill -9 -u sara firefox

Concluzie

Încetarea programelor care nu răspund folosind comenzile kill , killall și pkill este o sarcină ușoară. Trebuie doar să știți numele procesului sau PID.

ucide terminalul