CTRL + C enviará SIGINT
para o aplicativo. O aplicativo pode configurar um manipulador para este sinal ou pode ignorar o sinal. Por padrão, não há manipulador e SIGINT
eliminará o aplicativo.
Você pode usar CTRL + \ , que enviará SIGQUIT
. Isso também gerará um dump principal se o limite do núcleo não for zero.
Você pode suspender o processo e retornar ao shell com CTRL + Z , isso stop a execução do processo e retornar ao prompt do shell. O processo estará na memória e estará disponível como um trabalho no shell atual. Você pode então usar kill -SIGNAL %%
ou kill -SIGNAL %<job_ID>
para enviar um sinal para esse trabalho. Por exemplo. para matar o último emprego use kill -9 %%
Se nenhum deles estiver funcionando, você sempre pode enviar SIGTERM
e, como último recurso, SIGKILL
, o que encerrará qualquer processo. Este sinal como qualquer outro sinal deve ser enviado como o mesmo usuário que o processo que você está tentando parar ou como root. Para enviar SIGKILL
para o processo, primeiro encontre o processo com ps aux
ou ps -edf
e, em seguida, execute kill -SIGKILL <process_ID>
, em que <process_ID>
é a coluna PID
em ps
output.
Os sinais não podem ser entregues se o processo estiver em uma chamada ininterrupta. Chamadas ininterruptas são funções do kernel que não podem ser interrompidas e geralmente acontecem por causa de um driver incorreto (por exemplo, um driver que não é reentrante ). Um processo que está em suspensão ininterrupta não pode ser interrompido até que a chamada seja concluída ou o servidor seja reiniciado.
Se um processo se tornar um zumbi , ele não usará recursos apenas ocupando espaço na tabela de processos. Um processo zumbi não pode receber sinais.
A lista de sinais para a arquitetura atual pode ser encontrada com kill -l
Veja as páginas de manual de kill
, ps
e bash
. Para ver uma página man use algo como: man ps