Fazendo "consumidor &" vai simplesmente fundo a tarefa e vá em frente. Se o shell proprietário terminar, terminará todas as tarefas em segundo plano. Você diz que o script funciona na linha de comando, mas o daemon não vai sobreviver se você sair?
Você deseja iniciar seu daemon com algo como start-stop-daemon.
EDIT: na verdade, ao ler seu texto novamente, não tenho certeza se o consumidor é um daemon afinal? Se você quiser apenas executar algum código na inicialização (por exemplo, faxina), escreva uma linha em /etc/rc.local.
Se o script demorar muito para ser executado, você pode querer negá-lo. Ou seja:
consumer &
disown %1
O script agora sobreviverá ao término do shell. Observe que, se o shell gerar o texto, ele reterá o mesmo tty, o que pode causar problemas, dependendo do que acontece depois que seu shell terminar.