Niveles de ejecución

Un nivel de ejecución es un estado de init y de la totalidad del sistema, y define que servicios están operando. Los niveles de ejecución son identificados por números (observe la Tabla Tabla 9.1, “Números de los niveles de ejecución”). No existe aún un consenso de como utilizar los niveles de ejecución definidos para usuarios (2 a 5). Algunos administradores de sistemas utilizan niveles de ejecución para definir cuales subsistemas están trabajando, por ejemplo, si X se está ejecutando, si la red se encuentra operativa, etc. Otros, tienen siempre todos los subsistemas en ejecución, o inician y paran subsistemas individualmente sin cambiar de nivel de ejecución, debido a que los niveles de ejecución son un poco complejos para controlar sus sistemas. Puede decidir que metodología utilizar, aunque puede llegar a ser mas fácil mantener la manera en que tu distribución GNU/Linux realiza las cosas.

Tabla 9.1. Números de los niveles de ejecución

0 Parar el sistema
1 Modo de usuario individual (para tareas especiales de administración).
2-5 Operación normal (definidas para los usuarios).
6 Reiniciar el sistema.

Los niveles de ejecución se encuentran configurados en el archivo /etc/inittab por líneas como la siguiente:

 l2:2:wait:/etc/init.d/rc 2 

El primer campo es una etiqueta arbitraria, el segundo indica que la línea se aplica al nivel de ejecución 2. El tercer campo significa que init debe ejecutar el comando especificado en el cuarto campo una sola vez, cuando se ingrese al nivel de ejecución. Además, indica que init debe esperar hasta que la ejecución de dicho comando finalice. El script de shell /etc/init.d/rc ejecuta los comandos necesarios para iniciar y parar servicios al ingresar al nivel de ejecución 2.

El comando especificado en el cuarto campo, realiza todo el trabajo duro que se necesita para establecerse en un nivel de ejecución. Este comando inicia servicios que no se encuentren en ejecución, y detiene o finaliza servicios que no deban estar ejecutándose en el nuevo nivel. La especificación exacta del comando y la manera en que se encuentren configurados los niveles de ejecución dependen de la distribución GNU/Linux.

Cuando init comienza su ejecución, busca una línea en /etc/inittab que especifique el nivel de ejecución por defecto:

 id:2:initdefault: 

Cuando el sistema inicia, puede indicarle a init que inicie un nivel de ejecución distinto al especificado por defecto. Esto se logra informando al kernel con el argumento de línea de comandos single o emergency. Los argumentos de la línea de comandos del kernel se pueden especificar a través de LILO, por ejemplo. Esto permite que seleccione el modo de usuario individual o simple (nivel de ejecución 1).

Mientras el sistema se está ejecutando, el comando telinit puede cambiar el nivel de ejecución. Cuando el nivel de ejecución cambia, init ejecuta el comando relevante desde /etc/inittab.