kill (Unix)

De la Wikipedia, enciclopedia liberă
Jump to navigation Jump to search

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