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.