kill (Unix)

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Comanda UNIX kill este folosită pentru a trimite un semnal unui proces. Unul din semnalele cele mai des trimise este SIGKILL. Semanlul este folosit pentru a termina procesul, de unde și numele comenzii.

Sintaxă[modificare | modificare sursă]

kill [-s semnal] pid
kill [-l] semnal

unde semnal este valoarea numerică a semnalului, iar pid este identificatorul procesului (în engleză process identifier). Dacă semnalul nu este specificat, implicit se trimite semanlul SIGTERM. Ca și SIGKILL, SIGTERM termină procesul, diferența este că SIGTERM poate fi interceptat de proces, în timp ce SIGKILL nu poate fi interceptat, iar procesul este terminat imediat.

Toate semnalele cu excepția SIGKILL și SIGSTOP pot fi interceptate de un proces. SIGSTOP îngheață execuția unui proces, repornirea procesului se face cu SIGCONT.


Opțiunea -l listează toate semnalele care pot fi trimise:

# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

Numărul de dinaintea semnalului este numărul folosit în comandă pentru a specifica semnalul.


Implementare[modificare | modificare sursă]

kill este implementat de obicei cu ajutorul apelului de sistem kill(). Apelul trimite un semnal unui proces sau unui grup de procese specificate prin identificatorul de proces. Implementări alternative pot să includă apelul de sistem sigqueue().


Exemple[modificare | modificare sursă]

Presupunând că avem un proces cu identificatorul 1234, SIGTERM (15) poate fi trimis în următoarele moduri:

kill 1234
kill -s TERM 1234
kill -TERM 1234
kill -15 1234

Un semnal SIGKILL poate fi trimis în trei moduri:

kill -s KILL 1234
kill -KILL 1234
kill -9 1234

Un semnal SIGINT poate fi generat foarte simplu apăsând tastele Control-C, SIGTSTP se obține apăsând Control-Z, în timp ce SIGQUIT se obține apăsând Control-\ (backslash). Acesta din urmă forțează terminarea programului și generarea unui core dump. Unele programe precum Apache, Sendmail sau xinetd folosesc semnalul SIGHUP pentru a-și reîncărca datele de configurare.


Vezi și[modificare | modificare sursă]

Legături externe[modificare | modificare sursă]

  • en Pagina de manual
  • en kill, Commands & Utilities Reference, The Single UNIX® Specification, Issue 7 from The Open Group


 v  d  m  Programe în linia de comandă pentru Unix (mai multe)
Management de fișiere: cat | cd | chmod | chown | chgrp | cksum | cmp | cp | du | df | file | fsck | ln | ls | lsof | mkdir | mount | mv | pwd | rm | rmdir | split | touch
Management de procese: at | chroot | cron | exit | kill | killall | nice | pgrep | pidof | pkill | ps | pstree | sleep | time | top | wait
Management utilizator/mediu: env | finger | id | mesg | passwd | su | sudo | uname | uptime | w | wall | who | whoami | write
Procesare text: awk | comm | cut | ed | ex | fmt | head | iconv | join | less | more | paste | sed | sort | tac | tail | tr | uniq | wc | xargs
Programare Shell: basename | echo | expr | false | printf | test | true | unset Imprimare:
lp
Communicații:
inetd | netstat | ping | rlogin | traceroute
Căutare:
find | grep | strings
Diverse:
banner | bc | cal | dd | man | size | yes