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
.