kill

De LinuxPédia
Ir para: navegação, pesquisa

O comando kill é utilizado para enviar um sinal a determinado processo rodando no sistema. Para maiores informações ver processos

Sinais são a forma que o sistema tem de se comunicar com os processos em execução.

Esse comando é mais utilizado para matar os processos em execução que não estão funcionando corretamente, mas o kill pode mandar qualquer sinal para os processos.

Podemos utilizar o comando kill para fechar, matar, parar a execução ou dar continuidade a execução de um processo.

Os sinais mais comuns são:

SIGINT (2) Interromper execução (sinal que é enviado quando entramos [Ctrl + c] na CLI)
SIGTERM (15) Terminar o processo de forma SUAVE (O processo salva o que tiver que salvar, faz o que tiver que fazer e fecha)
SIGKILL (9) Morra!!! Termina o processo imediatamente. Esse sinal não pode ser ignorado pelo processo.
SIGSTOP (19) É o sinal que suspende a execução do processo. Para dar continuidade a execução utilizamos o SIGCONT
SIGCONT (18) Continuar a execução do processo

O padrão do comando kill é o sinal TERM (15) que manda uma mensagem para o processo finalizar sua execução.

Na prática antes de utilizar o comando kill temos que obter o número de PID do processo , o que podemos fazer através do comando top.

Sintaxe

kill [options] [pid]

Os parâmetros do comando mais utilizados são:

Os sinais mais comuns são:

pid O número de PID do processo ou processos a serem sinalizados
-[sinal] ; -s [sinal] ou -signal [sinal] Terminar o processo de forma SUAVE (O processo salva o que tiver que salvar, faz o que tiver que fazer e fecha) O sinal pode ser especificado por número ou pelo seu nome.
-l ou --list Lista todos os sinais possíveis e seus números.

Todos os sinais que podem ser enviados a um processo pelo comando kill:

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	

Obs. Para enviar sinais para um processo pelo nome podemos utilizar o comando killall. Para fechar aplicações através da interface gráfica usamos o comando xkill.


Exemplos

Matar todos processos que podem ser fechados

$ kill -9 -1

Manda um sinal de número 9 (KILL) para todos processos que podem ser fechados.

Mostra o significado de um sinal pelo número

$ kill -9 -1
KILL

O comando retornou que o sinal de número 9 é o sinal SIGKILL.

Matar um processo específico

Nesse exemplo vamos supor que desejamos fechar o Firefox que não está se comportando como o desejado. Para encontrar o PID do processo vamos executar o comando top.

$ top

top - 16:16:02 up 9 days, 22:46,  3 users,  load average: 0,22, 0,28, 0,25
Tarefas: 312 total,   1 executando, 311 dormindo,   0 parado,   0 zumbi
%Cpu(s):  0,9 us,  0,4 sy, 74,1 ni, 24,6 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem:   8091300 total,  7281392 used,   809908 free,   363640 buffers
KiB Swap:        0 total,        0 used,        0 free.  3656436 cached Mem

PID USUÁRIO  PR  NI    VIRT    RES    SHR S  %CPU %MEM   TIME+ COMMAND                                                                                                                                                            

2163 root   20   0  609900  90144  59816 S  12,8  1,1 177:27.54 Xorg                                                                                                                                                         
8859 john  20   0 2294036 619936  68168 S  12,8  7,7  28:25.04 firefox

Nessa saída do top podemos ver que o PID do firefox é 8859 agora vamos fechar o aplicativo

$kill -9 8859

Matar vários processos de uma vez

$ kill 123 543 2341

Esse comando manda o sinal TERM para os processos de númer 123 543 e 2341 fechando esses processos.

Manda um sinal para o processo pelo nome do sinal

$kill -SIGSTOP 2431

Esse comando manda o sinal de STOP para o processo 2431

Referencias

Manual do comando kill (man kill)