Eu não tenho tempo para redigitar tudo o que eu escrevi para essa pergunta no Stack Overflow, mas alguns ponteiros que você pode querer:
Primeiro, @reboot specifier no crontab(5) facilita a execução de um programa como usuário na inicialização.
Em segundo lugar, escrevendo uma especificação de trabalho upstart para executar um programa como serviço é bastante simples. A documentação é ruim, mas há muitos exemplos em /etc/init.d/ . start-stop-daemon(8) é fantástico - leia sua manpage antes de tentar reinventar a roda.