Android

Omoară comanda în linux

Linux Command Line Tutorial For Beginners 15 - kill command

Linux Command Line Tutorial For Beginners 15 - kill command

Cuprins:

Anonim

Linux este un sistem de operare excelent și avansat, dar nu este perfect. Din când în când, unele aplicații pot începe să se comporte în mod eronat și să devină fără răspuns sau să înceapă să consume o mulțime de resurse de sistem. Aplicațiile fără răspuns nu pot fi repornite, deoarece procesul inițial al cererii nu se închide complet. Singura soluție este fie să reporniți sistemul, fie să omori procesul de aplicare.

Există mai multe utilități care vă permit să încheiați procesele errante cu kill fiind cea mai frecvent utilizată.

kill comanda

kill este o cochilie construită în majoritatea scoicilor derivate din Bourne precum Bash și Zsh. Comportamentul comenzii este ușor diferit între shells și executabilul independent /bin/kill .

Utilizați comanda de type pentru a afișa toate locațiile din sistemul dvs. care conțin kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Rezultatul de mai sus spune că shell-ul încorporat are prioritate față de executabilul autonom și că este folosit de fiecare dată când tastați kill . Dacă doriți să utilizați binarul, tastați calea completă către fișier /bin/kill ., vom folosi Bash builtin.

Sintaxa comenzii kill ia următoarea formă:

kill…

Comanda kill trimite un semnal proceselor sau grupurilor de proces specificate, determinându-le să acționeze în funcție de semnal. Când semnalul nu este specificat, acesta este implicit la -15 (-TERM).

Semnalele cele mai utilizate sunt:

  • 1 ( HUP ) - Reîncărcați un proces. 9 ( KILL ) - Omoară un proces. 15 ( TERM ) - Opriți cu grație un proces.

Pentru a obține o listă cu toate semnalele disponibile, invocați comanda cu opțiunea -l :

kill -l

Semnalele pot fi specificate în trei moduri diferite:

  1. Utilizarea numărului (de exemplu, -1 sau -s 1 ). Folosirea prefixului „SIG” (de exemplu, -SIGHUP sau -s SIGHUP ). -SIGHUP prefixul „SIG” (de exemplu, -SIGHUP sau -s HUP ).

Următoarele comenzi sunt echivalente între ele:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

PID-urile furnizate pentru comanda de kill pot fi una dintre următoarele:

  • Dacă PID este mai mare decât zero, semnalul este trimis procesului cu ID egal cu PID . Dacă PID este egal cu zero, semnalul este trimis la toate procesele din grupul de proces curent. Cu alte cuvinte, semnalul este trimis la toate procesele aparținând GID-ului shell-ului care a invocat comanda kill . Folosiți comanda ps -efj pentru a vizualiza ID-urile grupului de proces (GID). Dacă PID este egal cu -1 , semnalul este trimis la toate procesele cu același UID ca utilizatorul invocând comanda. Dacă utilizatorul invocator este rădăcină, semnalul este trimis la toate procesele, cu excepția inițialului și a procesului de kill sine. Dacă PID este mai mic de -1 , semnalul este trimis la toate procesele din grupul de procese eq cu GID egal cu valoarea absolută a PID .

Utilizatorii obișnuiți pot trimite semnale la propriile lor procese, dar nu cele care aparțin altor utilizatori, în timp ce utilizatorul root poate trimite semnale proceselor altor utilizatori.

Terminarea proceselor folosind comanda de kill

Pentru a încheia sau ucide un proces cu comanda kill , mai întâi trebuie să găsiți numărul de identificare al procesului (PID). 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 PID-urile browserului folosiți comanda pidof :

pidof firefox

Comanda va imprima ID-urile tuturor proceselor Firefox:

6263 6199 6142 6076

După ce cunoașteți numerele proceselor, le puteți încheia pe toate trimițând semnalul TERM :

kill -9 2551 2514 1963 1856 1771

În loc să căutați PID-uri și apoi să încheiați procesele, puteți combina comenzile de mai sus într-una:

kill -9 $(pidof firefox)

Procesele de reîncărcare folosind comanda de kill

Un alt caz obișnuit de utilizare pentru kill este trimiterea semnalului HUP , care indică procesele de reîncărcare a setărilor sale.

De exemplu, pentru a reîncărca Nginx, trebuie să trimiteți un semnal procesului principal. ID-ul de proces al procesului principal Nginx poate fi găsit în fișierul nginx.pid , care este de obicei localizat în directorul /var/run .

Folosiți comanda cat pentru a găsi PID-ul principal:

cat /var/run/nginx.pid

30251

După ce ați găsit PID-ul principal, reîncărcați setările Nginx tastând:

sudo kill -1 30251

Comanda de mai sus trebuie rulată ca root sau utilizator cu privilegii sudo.

Concluzie

Comanda kill este utilizată pentru a trimite un semnal proceselor. Semnalul cel mai frecvent utilizat este SIGKILL sau -9 , care încheie procesele date.

ucide terminalul