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.