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