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.