Sua pergunta não está clara, você fala sobre um daemon no título, mas no corpo apenas fala sobre um processo genérico.
Para um daemon existem meios específicos para pará-lo, por exemplo, no Debian você tem
service daemon-name stop
ou
/etc/init.d/daemon-name stop
Existem sintaxes semelhantes para outros padrões de scripts escritos em outras distribuições / SO.
Para eliminar um processo que não seja daemon, supondo que ele esteja fora de controle, você pode usar com segurança killall
ou pkill
, já que eles usam por padrão o sinal SIGTERM
(15) e qualquer aplicação decentemente escrita deve pegar e sair graciosamente ao receber este sinal. Leve em conta que esses utilitários podem matar mais de um processo, se houver muitos com o mesmo nome.
Se isso não funcionar, você pode tentar SIGINT
(2), depois SIGHUP
(1) e como último recurso SIGKILL
(9). Este último sinal não pode ser capturado pelo aplicativo, para que ele não possa executar qualquer limpeza. Por este motivo, deve ser evitado sempre que puder.
Tanto pkill
quanto killall
aceitam um parâmetro de sinal no formato -NAME
, como em
pkill -INT process-name