Cómo va update-rc.d ? (editor de niveles de ejecución en Debian)

By 9 de agosto de 2006 Debian, Linux 2 Comments

debian-logo-vertical.gifUn breve recordatório para añadir / eliminar escripts en el arranque del sistema.
Resumen:

update-rc.d actualiza automáticamente los enlaces a los scripts de init tipo System V que se encuentran en /etc/rc[nivel_de_ejecución].d/NNnombre y que apuntan a los script /etc/init.d/nombre. Estos son ejecutados por init cuando se cambia de nivel de ejecución y se usan generalmente para arrancar y parar servicios del sistema (por ejemplo, daemons). nivel_de_ejecución es uno de los soportados por init, 0123456789S, y NN es el código de secuencia de dos dígitos usado por init para decidir en que orden se ejecutan los scripts.

Cuando se ejecuta con una o varias de las opciones defaults, start, o stop, update-rc.d crea los enlaces /etc/rc[nivel_de_ejecución].d/[SK]NNnombre apuntando al script /etc/init.d/nombre.

Si ya existe algún fichero con el nombre /etc/rc[nivel_de_ejecución].d/[SK]?? entonces update-rc.d no hace nada. Esto es así para que el administrador del sistema pueda reorganizar los enlaces ( teniendo en cuenta que debe de dejar al menos un enlace si los quiere eliminar ) sin que se sobreescriba su configuración.

Si se usa la opción defaults entonces update-rc.d creará enlaces para arrancar los servicios en los niveles de ejecución 2345 y parar los servicios en los niveles de ejecución 016. Por omisión todos los enlaces tendrán el código de secuencia 20, pero esto puede cambiarse especificando uno o dos argumentos NN. Un argumento cambia el valor por omisión del código de secuencia tanto para los enlaces de arranque como para los de parada, y si se proporcionan dos argumentos el primero cambia el código de los enlaces de arranque y el segundo el de los enlaces de parada.

En vez de usar defaults , los niveles de ejecució³n en los que se arranca o se para un servicio pueden ser especificados explícitamente mediante un conjunto de argumentos:

Cada uno de estos conjuntos empieza con un argumento start o stop para especificar cuándo se van a crear enlaces para arrancar o parar el servicio.

Luego les sigue NN, el código de secuencia para todos los enlaces del conjunto, y uno o más números de nivel de ejecución, cada uno como un solo
argumento. El conjunto se termina con el argumento "." (un punto).

Cuando se especifican explícitamente los niveles de ejecución, normalmente habrá un conjunto start y otro stop . Si son necesarios diferentes
códigos de secuencia para los distintos niveles de ejecución, entonces es necesario especificar varios conjuntos start y stop .

El script /etc/init.d/nombre debe existir antes de ejecutar update-rc.d para crear los enlaces.

En resumen:

# update-rc.d dhcp3-server defaults

Añadiría el servicio dhcp lanzando, aproximadamente, este resultado:

[20:36:52] root@draco:~# update-rc.d dhcp3-server defaults
Adding system startup for /etc/init.d/dhcp3-server ...
/etc/rc0.d/K20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc1.d/K20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc6.d/K20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc2.d/S20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc3.d/S20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc4.d/S20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc5.d/S20dhcp3-server -> ../init.d/dhcp3-server

# update-rc.d -f dhcp3-server remove

Borraría el servicio diciéndonos:

[20:36:52] root@draco:~# update-rc.d -f dhcp3-server remove
Removing any system startup links for /etc/init.d/dhcp3-server ...
/etc/rc0.d/K40dhcp3-server
/etc/rc1.d/K40dhcp3-server
/etc/rc2.d/S40dhcp3-server
/etc/rc3.d/S40dhcp3-server
/etc/rc4.d/S40dhcp3-server
/etc/rc5.d/S40dhcp3-server
/etc/rc6.d/K40dhcp3-server

2 Comments

Leave a Reply

Your email address will not be published.