logo

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

Comanda kill în Linux (situată în /bin/kill), este o comandă încorporată care este folosită pentru a încheia procesele manual. ucide comanda trimite un semnal unui proces care încheie procesul. Dacă utilizatorul nu specifică niciun semnal care urmează să fie trimis împreună cu comanda kill, atunci este implicit TERMEN este trimis un semnal care încheie procesul.

Sintaxa de bază a comenzii kill în Linux

Sintaxa de bază a comenzii `kill` este următoarea:



Sintaxa:

kill [signal] PID>

Aici,

sari peste lista
  • PID = Comanda `kill` necesită ID-ul procesului (PID) al procesului pe care vrem să-l încheiem.
  • [semnal] = Trebuie să specificăm semnalul și dacă nu specificăm semnalul, semnalul implicit ` TERMEN` este trimis pentru a încheia procesul

Semnalele pot fi specificate în trei moduri:

Semnalele pot fi specificate în trei moduri; sunt după cum urmează:



1. După număr:

Putem specifica un semnal folosind un număr. De exemplu, avem un PID ` 1212 ` și doriți să trimiteți un semnal `SIGKILL` pentru a ucide acest PID. SIGKILL are un număr de semnal de ` 9 ` (Pentru a găsi numerele de semnal, executați comanda `kill -l`).

Sintaxă:

kill -9 1212>

2. Cu prefix SIG (de ex/ -SIGkill)

De asemenea, putem specifica semnalul folosind prefixul SIG. De exemplu, trebuie să trimitem un semnal ` TERMEN ȚINTĂ ` și PID este ` 1432 `. Pentru a verifica doar numărul semnalului semnalului `SIGTERM` putem folosi comanda `kill -l`.



Sintaxă:

kill -SIGTERM 1432>

3. Fără prefix SIG:

De asemenea, putem specifica semnale fără a folosi prefixul SIG. De exemplu, dacă doriți să trimiteți semnal ` TERMEN` și PID ` 1234 `. Pentru a verifica doar numărul de semnal al semnalului `TERM` putem folosi comanda `kill -l`.

Sintaxă:

kill -TERM 1234>

Câteva semnale comune în kill Command

Tabelul de mai jos prezintă câteva semnale comune și numerele lor corespunzătoare.

Nume semnal Numărul semnalului Descriere
SUPRAȚI 1 A fost detectată blocarea la terminalele de control sau moartea procesului de control.
SIGINT 2 Se întrerupe de la tastatură.
SIGKILL 9 Omoară semnalul.
TERMEN ȚINTĂ cincisprezece Se termină semnalul.

Pentru a verifica numele și numărul semnalului putem folosi ` ucide -l ` comanda.

Opțiuni și exemple de comandă kill în Linux

ucide -l Opțiune

Pentru a afișa toate semnalele disponibile, puteți utiliza opțiunea de comandă de mai jos:

Sintaxă:

kill -l>

ucide -l

Notă:

  • Valorile PID negative sunt utilizate pentru a indica ID-ul grupului de procese. Dacă treceți un ID de grup de procese, atunci tot procesul din acel grup va primi semnalul.
  • Un PID de -1 este foarte special, deoarece indică toate procesele, cu excepția kill și init, care este procesul părinte al tuturor proceselor din sistem.
  • Pentru a afișa o listă de procese care rulează, utilizați comanda ps iar aceasta vă va arăta procesele care rulează cu numărul lor PID. Pentru a specifica ce proces ar trebui să primească semnalul de ucidere, trebuie să furnizăm PID-ul.

Sintaxă:

ps>

ps

ucide PID Opțiune

Această opțiune specifică ID-ul procesului care urmează să fie oprit.

Sintaxă:

pawandeep rajan
kill pid>

ucide -s Opțiune

Această opțiune specifică semnalul care trebuie trimis procesului.

Sintaxă:

kill -signal pid>

kill Command în Linux - Întrebări frecvente

Cum să omorâți un proces din linia de comandă Linux?

Pentru a opri un proces din linia de comandă Linux, puteți utilizakill>comanda urmată de ID-ul procesului (PID) al procesului țintă. De exemplu, pentru a încheia un proces cu PID 1234, veți folosi următoarea comandă:

kill 1234>

În mod implicit,kill>comanda trimite semnalul SIGTERM, permițând procesului să efectueze operațiuni de curățare înainte de terminare. Dacă procesul nu răspunde la SIGTERM sau dacă este necesară încheierea imediată, puteți utiliza semnalul SIGKILL cu-9>opțiune:

kill -9 1234>

Este important de reținut că încheierea forțată a unui proces cu SIGKILL poate duce la pierderea sau coruperea datelor, așa că este recomandat să încercați mai întâi SIGTERM și să recurgeți la SIGKILL numai dacă este necesar.

Cum să omorâți mai multe procese simultan?

Putem folosi comanda kill pentru a ucide mai multe procese simultan. Trebuie doar să specificăm mai multe PID-uri separate prin spații, sau putem folosi și comanda `killall` pentru a distruge toate procesele cu un nume specific.

De exemplu:

gimp înlocuiți culoarea

Dacă vrem să omorâm PID-urile proceselor precum 1234, 4321 și 2342, putem folosi următoarea comandă:

kill 1234 4321 2342>

Dacă vrem să omorâm toate procesele cu numele firefox. Putem folosi următoarea comandă.

killall firefox>

Este sigur să omorâți procesele sistemului?

Nu, este important să rețineți că numai procesele de ucidere despre care știm că sunt sigure de ucis, iar uciderea proceselor de sistem poate cauza instabilitate a sistemului. Este întotdeauna mai bine să utilizați alte metode, cum ar fi repornirea sistemului sau identificarea cauzei principale a problemei și remedierea acesteia.

Care este diferența dintre SIGTERM și SIGKILL în comanda `kill` în Linux?

SIGTERM, trimite un semnal de terminare procesului care ajută la ieșire cu grație. În timp ce SIGKILL trimite un semnal de ucidere către proces, care încheie procesele cu forță și imediat.

De exemplu:

Pentru a trimite semnalul `SIGTERM` și PID `4321`, putem folosi următoarea comandă.

kill -15 4321>

Pentru a trimite semnalul `SIGKILL` și PID `4321`, putem folosi următoarea comandă.

kill -9 4321>

Cum pot găsi ID-ul procesului (PID) al unui anumit program în Linux?

Pentru a găsi PID-ul unui anumit program, puteți utilizapgrep>comanda urmată de numele programului. De exemplu, pentru a găsi PID-ul procesului Firefox, ar trebui să introduceți:

pgrep firefox>

Care este scopulpkill>comanda și cum diferă dekill>comanda?

Thepkill>comanda este folosită pentru a trimite semnale către procese pe baza numelui lor, oferind o modalitate mai convenabilă de a termina procesele. Se deosebește dekill>comandă permițând utilizatorilor să specifice procesele după nume, mai degrabă decât după PID.

Cum pot verifica utilizarea resurselor (CPU, memorie) unui anumit proces în Linux?

Pentru a verifica utilizarea resurselor unui anumit proces, puteți utilizatop>comanda împreună cu ID-ul procesului (PID). De exemplu, pentru a monitoriza utilizarea resurselor unui proces cu PID 1234, veți rula:

top -p 1234>

Concluzie

Comanda `kill` din Linux este un utilitar foarte puternic pentru gestionarea proceselor. Am înțeles diferitele moduri de a specifica semnalele și opțiunile disponibile în comanda kill, care ne pot ajuta să gestionăm resursele sistemului în mod eficient și să rezolvăm problemele rapid și eficient.