Creación del script del demonio:

En primer lugar, debemos crear un script que sea interpretado por el bash de Linux:

#!/bin/sh
case "$1" in
start)
# código para iniciar el demonio/programa
;;
stop)
# código para parar el demonio/programa
;;
restart)
# código para reiniciar el demonio/programa
;;
esac

Con este script conseguimos que dependiendo de qué parámetro le pasemos (start, stop, restart) el demonio se inicie, se pare o se reinicie.

Para iniciarlo automáticamente:

Con lo anterior, ya tenemos nuestro "demonio", pero es un poco "vago", ya que no se lanza automáticamente al inicio. Tendríamos que lanzarlo manualmente nosotros. Para hacerlo automático tenemos que enlazarlo con un runlevel adecuado. Un runlevel no es otra cosa que un nivel de ejecución. Linux tiene 7 niveles de ejecución, del 0 al 6. Hay dos que no se pueden usar nunca: el 0, halt (parar todo, es decir, apagar) y el 6, reboot (reinicio). Los que nos interesan a nosotros son el 3 (Full multiuser mode) y el 5 (X11) .

Parece que todo se complica pero es muy fácil: Debemos enlazar nuestro script con un runlevel determinado, que se encuentran en /etc/rc3.d/ (para el runlevel 3) y en /etc/rc5.d/ (para el runlevel 5). Si tecleamos lo siguiente en una consola nos puede aclarar las ideas:

$ ls -l /etc(rc5.d/

que devuelve:

lrwxrwxrwx. 1 root root 13 dic 17 03:07 K01apt -> ../init.d/apt
lrwxrwxrwx. 1 root root 16 may 13 2011 K10psacct -> ../init.d/psacct
lrwxrwxrwx. 1 root root 15 dic 17 02:52 K10zvbid -> ../init.d/zvbid
lrwxrwxrwx. 1 root root 15 dic 23 15:07 K15httpd -> ../init.d/httpd

(...)

lrwxrwxrwx. 1 root root 17 may 13 2011 S00livesys -> ../init.d/livesys
lrwxrwxrwx. 1 root root 22 dic 16 21:23 S02lvm2-monitor -> ../init.d/lvm2-monitor
lrwxrwxrwx. 1 root root 16 may 13 2011 S07iscsid -> ../init.d/iscsid
lrwxrwxrwx. 1 root root 19 may 13 2011 S08ip6tables -> ../init.d/ip6tables
lrwxrwxrwx. 1 root root 18 may 13 2011 S08iptables -> ../init.d/iptables

Las K y las S tienen un significado especial: K detiene el demonio y S lo inicia. La pareja de números que le siguen designan la prioridad (de 00 a 99) con la que será atendido el demonio (00 es la máxima prioridad y 99 la mínima).