En Ubuntu existen muchos procesos que se ejecutan en modo daemon al iniciar la sesion, de hecho si queremos ejecutar algun programa al inicio de la sesion es algo muy simple solo hay que ir a Preferencias -> Sesiones -> Programas de inicio y Agregar un programa, con eso es sufuciente.
Pero que pasa si lo que deseamos es iniciar un script o programa al arranque del sistema, sin tener que iniciar la sesion, entonces para eso explico lo siguiente.
Primero debes comprender que al arrancar el sistema entras en un nivel de ejecución o Runlevel.
Para saber que runlevel te encuentras puedes escribir en una Terminal (Aplicaciones -> Accesorios -> Terminal):
sin embargo normalmente ubuntu (como hijo de Debian) corre en el runlevel 2 por defecto.
Esto quiere decir, que si entras en /etc/rc2.d/ encontraras alli una lista de todos los scripts que se ejecutan al arrancar el sistema. Si nos fijamos bien todos son enlaces simbolicos a archivos que se encuentran en /etc/init.d/ que es donde están todos los daemon es decir, todo lo que funciona independientemente y sin emitir a la Terminal un mensaje para el usuario.
De modo que para ejecutar un script o programa al arranque del sistema, primero es necesario darle caracteristicas de daemon y posteriormente crees un enlace simbolico de este daemon en la carpeta /etc/rc2.d/ de la siguiente forma:
1) Darle permiso de ejecucion al script, en la Terminal y en la carpeta donde esta el script escribimos:
sudo chmod +x nombrescript
2) Copiarlo a la carpeta /etc/init.d/
sudo cp nombrescript /etc/init.d/
3) Nos cambiamos al directorio /etc/rc2.d/
4) Listamos todo lo que hay en el directorio, observa que todos los archivos comienzan con una S (start) mayuscula y seguidos de un numero entre el 00 y el 99. Estos numeros determinan el orden en que se ejecutan cada uno de los proceso en este archivo. Elije un numero (##) que no exista, de preferencia de los ultimos ya que lo utilizaremos en el siguiente paso.
5) Y hacemos un enlace simbolico del script en la carpeta /etc/rc2.d/
sudo ln -s /etc/init.d/nombrescript /etc/rc2.d/S##nombrescript
Con eso hemos logrado que nuestro script o programa se ejecute al encender la PC.
Como ejemplo mas practico veamos el caso del daemon de ddclient, en ESTA entrada explico como instalar ddclient en modo daemon, porterior a eso solo nos queda hacer
sudo ln -s /etc/init.d/ddclient /etc/rc2.d/90ddclient
y listo el ddclient se ejecutara al encender nuestra PC.