kill în Linux / Bash

Procese și monitorizare POSIX / procps-ng / Bash built-in

Trimite un semnal de control sau oprire către un proces specificat prin ID (PID).

Sintaxă comandă
kill [opțiuni] PID...

Ce face kill

Deși numele sugerează distrugerea procesului, comanda kill trimite de fapt un semnal specificat către procesul cu numărul PID indicat.

Semnalul implicit este SIGTERM (15), care solicită politicos procesului să se închidă curat (eliberând conexiunile și salvând datele). Dacă procesul este blocat și nu răspunde, se folosește semnalul forțat SIGKILL (9), care este executat direct de nucleu.

Opțiuni și argumente

Opțiune / Parametru Descriere
-15, -TERM Semnalul implicit (SIGTERM): cere procesului să se oprească ordonat și să își curețe resursele.
-9, -KILL Semnalul forțat (SIGKILL): ucide instantaneu procesul fără a-i permite să intercepteze semnalul.
-1, -HUP Semnalul SIGHUP: folosit frecvent pentru a cere demonilor să își reîncarce fișierele de configurare fără repornire.
-l Listează toate semnalele de sistem disponibile și numerele lor asociate.

Exemple

Exemplul 1: Oprirea unui proces după PID

Trimitem mai întâi semnalul politicos SIGTERM.

kill 1234

Ieșire în terminal

Semnal SIGTERM (15) trimis catre PID 1234

Exemplul 2: Listarea tuturor semnalelor de sistem

Opțiunea -l arată cele 64 de semnale standard Linux.

                    kill -l | tr ' ' '
' | grep -E 'HUP|KILL|TERM' | head -n 3

Rezultat

SIGHUP	
SIGKILL	10)
SIGTERM	16)

Greșeli frecvente

  • Trecerea directă la kill -9 fără a încerca mai întâi kill -15; kill -9 poate lăsa fișiere corupte, blocaje pe disc sau socket-uri de rețea deschise.

Comenzi înrudite

  • killall: Oprește toate procesele care rulează sub un anumit nume de executabil.
  • ps: Afișează o captură instantanee (snapshot) a proceselor active din sistem.