Para daemonizar adequadamente um processo para o Debian, você precisará executar várias etapas, incluindo desviar-se do processo de controle, redefinir a IO e criar um arquivo de identificação do processo para ser agradável. Em vez disso, você pode usar algo como o programa daemon do pacote com o mesmo nome para fazer isso por você. Se é isso que você queria fazer, a resposta pode ser encontrada aqui no StackOverflow: /programming/3095566/linux-daemonize
O comando upstart é mais parecido com o comando invoke-rc.d do Debian ou o comando service do pacote sysvinit-utils. Eles esperam trabalhar com scripts init em /etc/init.d. É padrão no Debian criar um desses para o seu pacote e usar o programa start-stop-daemon como você pode ver no exemplo /etc/init.d/skeleton.
Só porque você cria um script /etc/init.d/myservice não significa que ele precisa ser iniciado automaticamente. Você pode ajustar os níveis de execução nos quais para e inicia automaticamente usando uma ferramenta como update-rc.d. Isso é descrito em mais detalhes em Desativar a inicialização de um serviço em todos os níveis de execução?