En un cambio de nivel de ejecución suele ocurrir lo siguiente. Los llamados scripts de parada del nivel actual se ejecutan — los diferentes programas que se están ejecutando en este nivel se finalizan — y los scripts de arranque del nuevo nivel se inician. En un procedimiento como este, en la mayoría de los casos se ejecutan varios programas.
Para que sea más claro, veamos en un ejemplo qué ocurre si cambiamos del nivel 3 al 5:
El administrador (root) comunica al proceso init que debe cambiar el nivel de ejecución introduciendo init 5.
init consulta el archivo de configuración /etc/inittab y detecta que el script /etc/init.d/rc debe ser ejecutado con el nuevo nivel de ejecución como parámetro.
Ahora el programa rc ejecuta todos los scripts de parada del nivel actual para los cuales no existe un script de arranque en el nivel nuevo. En nuestro ejemplo son todos los scripts que se encuentran en el subdirectorio /etc/init.d/rc3.d (el último nivel de ejecución era 3) y que comienzan con la letra K. El número que sigue a la K asegura que se mantenga un cierto orden en el proceso, ya que algunos programas pueden depender de otros.
![]() | Importante |
|---|---|
Los nombres de los scripts de parada comienzan siempre con K (kill), los de los scripts de arranque con S (start). | |
Por último se llama a los scripts de arranque del nuevo nivel de ejecución. Estos están en nuestro ejemplo en /etc/init.d/rc5.d y comienzan con una S. También aquí se mantiene un orden determinado, el cual queda fijado por el número que sigue a la S.
Si cambia al mismo nivel en el que se encuentra, init lee solamente el /etc/inittab, comprueba el archivo buscando cambios y en caso necesario realiza los procedimientos adecuados (por ejemplo ejecuta un getty en otra interfaz).