Ir al contenido principal

Los Runlevels o Niveles de Ejecución en Linux


Existen en los Sistemas Operativos basados en UNIX, como es el caso de nuestro Linux, 7 (siete) Runlevels o Niveles de Ejecución. Cada uno de ellos será llamado al iniciar nuestro sistema, y dependiendo el que utilicemos podremos configurar los servicios que él ejecutará. Linux toma a éstos runlevels como instrucciones precisas de qué iniciar y que no. En Linux, éstos Niveles de Ejecución también se conocen como init. Cada uno de éstos Runlevels o init tiene sus propiedades particulares, las cuales se definen de la siguiente manera:

  • 0: System Halt. Se utiliza para apagar el sistema. Cuando apagamos nuestro Sistema, no hacemos otra cosa que enviar un init 0 al sistema, el cual se encargará de matar los procesos y servicios activos.
  • 1: Modo monousuario. Generalmente utilizado para mantenimiento del sistema.
  • 2: Modo multiusuario (pero sin soporte de red).
  • 3: Modo multiusuario completo (con servicios de red).
  • 4: En desuso por el sistema, pero puede modificarse para un inicio personalizado.
  • 5: Modo multiusuario completo con inicio gráfico. Ejecuta lo mismo que init 3 sumado el Servidor Gráfico X.
  • 6: System reboot (reset). Se utiliza para enviar la señal de reinicio del sistema.
Los Sistemas Linux disponen de un Runlevel ya asignado por defecto, es decir, la mayoría de las Distribuciones actuales inician en init 5 (con el Servidor Gráfico). Otros sistemas (las Distribuciones para Servidores, por ejemplo), inician con init 3 (todos los servicios, multiusuario completo y funcionalidades de red, exceptuando el Servidor Gráfico).

Configuración del RunLevel de inicio:
En la mayoría de las Distribuciones Linux, la configuración del RunLevel de inicio se encuentra en el archivo /etc/inittab. Dentro de él disponemos del init o Runlevel que se ejecutará al inicio del sistema. Por ejemplo, si editamos mi archivo en Debian veré dentro de él la siguiente línea:

# The default runlevel
id:5:initdefault:

Como se puede ver en mi caso, por defecto el runlevel a iniciar será el 5, es decir, multiusuario completo más el Servidor Gráfico. A su vez, en un Sistema donde hemos acabado de instalar recientemente el Servidor Gráfico, podremos editar ésta línea y colocar el runlevel que quisiesemos, excepto el 0 y 6, ya que el sistema se apagaría o reiniciaría ni bien inicie.


Conocer qué Runlevel estamos utilizando:
Una forma práctica de saber qué runlevel estamos utilizando es con los comandos en Terminal who -r y runlevel (éste último ejecutado como Root).

Saltar a otro runlevel:
En cualquier momento, podremos saltar a otro runlevel distinto del actual. Podríamos apagar el equipo invocando a init 0, iniciar una sesión sin el Servidor Gráfico con init 3, o hasta reiniciar el equipo con init 6. Basta con tipear en un terminal como Root el comando init seguido del runlevel, por ejemplo:

[bachi@localhost ~]$ sudo init 3

Lo cual me llevaría directamente a matar mis X (Servidor Gráfico) e iniciar un runlevel multiusuario completo con funciones de red.

Espero que les haya sido de interés ésta entrada. La próxima veremos como configurar Servicios de Linux en base a éstos runlevels.
3 comentarios

Entradas populares de este blog

Botones capacitivos no vibran o encienden en Samsung S6

Si tienes el problema en que de la noche a la mañana por culpa de algún duende, tus botones capacitivos de tu Samsung S6 (botón Atrás y botón Aplicaciones recientes) funcionan pero no encienden ni vibran, aquí la solución paliativa.

El problema es un bug reconocido por la comunidad de Android, que aún (al día de la fecha) en Android 5.1.1 no ha sido resuelto. Se trata de un problema al activar el Ahorro de Energía, que de forma correcta deshabilita la vibración y luminosidad de las teclas capacitivas, pero aún desactivandolo siguen deshabilitadas.


Cuando tus botones capacitivos no respondan como deben (me resultan útiles que vibren o se enciendan), debemos:
Entra en el Ahorro de Energía.En "Iniciar ahorro de energía", selecciona "Inmediatamente".Apaga el Ahorro de energía.(Si quieres) Vuelve a encenderlo y configuralo con un porcentaje a gusto. Los botones capacitivos ahora funcionarán.Quizás, en una próxima actualización de Android Lollipop solucionen este pequeño bu…

PARTE I: Instalar OCS Inventory NG (Server) en Ubuntu Linux 14.04 LTS

Muchos conocerán los beneficios y funcionalidades que nos provee OCS Inventory. Es por eso que si has llegado hasta aquí, daré por sentado que ya conoces qué se puede hacer con este increíble Software.

Tomé la decisión de hacer un pequeño tutorial de instalación de OCS Inventory NG en su versión Server sobre Ubuntu Linux 14.04 LTS originado por varios motivos: mi exitosa experiencia utilizado e implementando ésta solución, la Wiki del proyecto no está actualizada "al día", y (lo más importante) porque existe mucha documentación fragmentada en la Web, en idioma francés, italiano, y con mucha información algo incompleta.

Nota 1: Asumo que dispones de conocimientos básicos de Ubuntu, Apache y Mysql. Ante una duda, deja un comentario, o bien indaga en la Web. No duele ;D

Nota 2: Este instructivo esta basado en la versión de OCS Inventory NG version 2.2 al día de la fecha de publicación.

Nota 3: configura tu Ubuntu con una IP estática/fija.

Requisitos de paquetería

Actualiza Ubuntu a …

Enviar mensaje masivo a PCs con Windows en un Dominio

En la oficina estábamos tratando de optimizar el proceso de reinicio de un Servicio indispensable para gran parte de los usuarios de la empresa, pero sin caer en el viejo y obsoleto método del correo o la llamada telefónica. La duda era, ¿cómo les notificamos de forma fácil que debíamos reiniciar el Servicio?

Era indispensable que los usuarios cerrasen sus Apps que se conectaban a dicho "demonio", para así tener la tranquilidad de que esos programas no quedasen "frizados" y evitar el maremoto de llamadas y reclamos para luego matar uno a uno dicho proceso de forma remota.

En Windows, el comando que debemos usar es msg.exe, no disponible en Windows XP, pero si para Windows Vista y posteriores.

Primero, necesitábamos listar aquellos equipos que tenían la App dependiente de dicho Servicio, armar un listado con ellas y así ejecutar el comando msg en función a ese listado. Para ello, acudimos a nuestro System Center Configuration Manager, y mediante un Reporte, listamos…