Como matar um daemon no Linux?

1

Observação: antes de marcar essa pergunta como duplicada, lembre-se de que tentei todas as soluções que pude obter on-line, mas ainda não consegui resolver o problema.

Eu executei o daemon por meio do seguinte comando:

rake resque:work QUEUE='*' &

Ele me retornou 13031 . Agora, quero matar esse daemon e estou tentando os seguintes comandos:

kill -9 13031
kill 13031

A execução dos dois comandos diz: -bash: kill: (13031) - No such process e agora estou presa. Não consigo descobrir como matar o daemon.

    
por Arslan Ali 25.06.2016 / 14:18

1 resposta

3

Eu tenho uma teoria possível para isso.

Quando você executa o aplicativo como

$ rake resque:work QUEUE='*' &
[1] 13031

O aplicativo faz internamente um fork+exit , para ser executado em segundo plano.

C equivalente ao código seria:

if(fork()) exit(0);

Assim, o processo com PID==13031 gerará um processo filho & sair em si. A criança continuará correndo em segundo plano & será herdado pelo processo init (PID == 1).
Você pode ver se este é o caso, pressione outra tecla enter depois de iniciar o comando rake . Você vê impressões assim?

[1]+  Done                 rake resque:work QUEUE='*'

Tente executar ps no terminal. Isso deve mostrar o PID do processo filho. Se você kill , o daemon deve sair.

    
por 25.06.2016 / 14:21