Laburo España: 250.000 ofertas de empleo

rubensa, algo en qué pensar

Lunes, 06 de marzo de 2006

Niveles de Ejecución (Run Levels)

Una cuestión que siempre siembra dudas e incertidumbres entre los que se acaban de inciar en el mundo Linux son los runleves.
¿Qué son? ¿Para qué sirven? ¿Cómo se cambian?

Los niveles de ejcución de linux (run levels) se numeran del 0 al 6. Los niveles de ejecución acaban en el 6 debido a razones prácticas e históricas, pero es posible tener más si se desea.

La siguiente tabla resume los niveles de ejecución de usuario en Linux:

* 0 Detención del sistema (System Halt)
* 1 Monousuario (Single user)
* 2 Modo multiusuario completo (Full multi-user mode) (por defecto)
* 3-5 Igual que el 2
* 6 Reinicio del sistema (System Reboot)

Niveles de ejecución especiales

El nivel de ejecución 0 es la condición de detención del sistema. Casi todos los ordenadores X86 modernos se apagarán automáticamente cuando se alcanza el nivel de ejecución 0. Algunos ordenadores X86 antiguos y otras arquitecturas permanecerán encedidas postrando un mensaje referente a la condición de detención.


El nivel de ejecución 1 se conoce como modo 'mono usuario'. Una descripción más acertada sería modo 'rescate' o 'solución de problemas'. En el nivel de ejecución 1 no se inician demonios (servicios). Es de esperar que el modo mono usuario te permita solucionar lo que hizo necesaria la transición al modo de rescate.

(Generalemnte puedes arrancar en modo mono usuario utilizando tu cargador de arranque, lilo o grub, añadiendo la palabra 'single' al final de la línea de comandos del kernel).


Los niveles de ejecución 2 a 5 son modos multiusuario completos y son idénticos, por defecto, en un sistema de usuario Linux (Debian). Es práctica habitual en otras distribuciones Linux utilizar el nivel de ejecución 3 para autentificación en modo consola y el nivel de ejecución 5 para autentificación en modo gráfico.


El nivel de ejecución 6 se utiliza para enviar una señal de reinicio del sistema. Es igual que el nivel de ejecución 0 pero al final de la secuencia se produce un reinicio en vez de un apagado.

Solamente por completar, existe además un nivel de ejecución 'S' que el sistema utiliza para pasar a otro nivel de ejecución. Lee las páginas del manual para el comando init si deseas más información, pero, pero en la práctica, puedes obviarlo.


¿Dónde residen los Niveles de Ejecución?

Como cualquier otra cosa en un sistema Linux, los niveles de ejecución se definen en archivos del sistema de archivos. Todos los archivos de los niveles de ejecución se encuentran en el directorio /etc de acuerdo con la siguiente tabla:

/etc/rc0.d Nivel de ejecución 0
/etc/rc1.d Nivel de ejecuciónl 1
/etc/rc2.d Nivel de ejecución 2
/etc/rc3.d Nivel de ejecución 3
/etc/rc4.d Nivel de ejecución 4
/etc/rc5.d Nivel de ejecución 5
/etc/rc6.d Nivel de ejecución 6

Cada nivel de ejecución definido deberá tener un directorio rcX.d conde X es el número de nivel de ejecución. El contenido del directorio rcX.d determina lo que ocurrirá en dicho nivel de ejecución.


¿Cómo puedo cambiar los niveles de ejecución?

Antes de cambiar de nivel de ejecución pude ayudarnos el averiguar en qué nivel de ejecución nos encontramos. Utiliza el comando 'runlevel' para obtener dos cosas: el último nivel de ejecución, y en nivel de ejecución actual. A continuación aparece la ejecución de dicho comando y su salida:

# runlevel
N 2

La 'N' significa ninguno, indicando que no ha habido ningún cambio desde el encendido.

El sistema de inicio (ini system) controla los niveles de ejecución, ya que como siempre, el sistema de inicio controla casi todo. El sistema de inicio será revisado más detenidamente en un futuro artículo.


El comando principal utilizado para cambiar de nivel de ejecución es 'telinit'. ¿Lo pillas? "Tell Init" ("Indícale a Init") que haga algo; como esto:

telinit 3

telninit recibe un argumento en la línea de comadno. Como siempre, comprueba las páginas del manual para más detalles. Normalmente el argumento estará entre: 0,1,2,3,4,5,6 o la letra 'S'. Como pudes haber adivinado, el número se corresponde con el nivel de ejecución al que queremos cambiar. Utilizar 'S', para mono-usuario, es lo mismo que el número 1, pero no lo utlices; el nivel de ejecución 'S' está pensado para ser utilizado por el sistema.


Una advertencia. Puedes ejecutar el comando telinit para reiniciar (nivel de ejecución 6) o apargar el equipo (nivel de ejecución 0) de un modo sencillo, pero no se recomienda. Ciertos programas necesitan un proceso especial para una detención ordenada. No realizar la secuencia de apagado esperada puede tener efectos no deseados en tus datos. Los sistemas _Unix_ antiguos son especialmente sensibles a operaciones de apagado/inicio.


El método preferido para un cambio serio de nivel de ejecución es 'shutdown'. Existens nemónicos más sencillos, pero en un sistema en ejecución todos ellos apuntan al mismo comando 'shutdown'. Puedes utilizar los comandos 'halt', o 'poweroff' para detener un sistema y el comando 'reboot' para reiniciar el sistema. En cada caso se llama al comando 'shutdown' con diferentes parámetros.

Aquí puedes ver la anotación original en inglés.


Por: Rubén Suárez Alvarez | GNU/Linux | Comentarios (0) | Referencias (0)

Comentarios

Comentar


Recordar datos

Acerca de

"El trabajo tiene un peso específico dentro de la empresa. A más trabajo, más peso y por tanto más abajo estás. A menor trabajo más ligero te vuelves y más asciendes. ¿Y tú, trabajas o asciendes en tu empresa?"

rubensa

Bilo y Nano


(pulsa sobre la imagen para ver la tira completa)

Raulito el Friki


(pulsa sobre la imagen para ver la tira completa)

Linux Hispano


(pulsa sobre la imagen para ver la tira completa)

Calendario

<<
Marzo de 2006
>>
Lu Ma Mi Ju Vi Do
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Sindicación

RDF XML ATOM

Créditos

Bitácora de Rubén Suárez Alvarez
Online gracias a Bitácoras, weblogs en español

LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009