Niveles de corrida o runlevels en Linux

Hasta no hace mucho tiempo, la mayoría de las distribuciones más utilizadas (podemos nombrar a Debian y a CentOS como ejemplos) utilizaban como «base» de su funcionamiento el sistema de arranque y de administración de servicios conocido como SystemV. Este sistema, heredado de Unix, contempla 5 niveles útiles de funcionamiento (de ahí el nombre SystemV, correspondiente al número 5 en el sistema romano) numerados del 1 al 5, sumados al nivel 0 (apagado del equipo) y al 6 (reinicio del sistema). Es esto lo que se conoce como niveles de corrida o runlevels en Linux.

Debido a que hoy en día todavía existen algunas versiones de distros muy conocidas que todavía utilizan SystemV (entre los que podemos nombrar a Debian Wheezy LTS y CentOS 6), hablaremos en modo presente al referirnos al tema.

Runlevels en Linux

Cada runlevel se encuentra asociado a un cierto número de servicios que por defecto deben iniciarse automáticamente cuando encendemos el equipo, y que deben detenerse al reiniciarlo o apagarlo.

En la Fig. 1 podemos ver que el directorio /etc en un sistema CentOS 6.5 contiene 7 directorios con nombre rcN.d, donde N es un número del 0 al 6 (en realidad, son enlaces simbólicos que apuntan a los directorios reales ubicados dentro de /etc/rc.d).

Lista de directorios asociados a los runlevels en Linux
Figura 1 – Lista de directorios asociados a los runlevels en Linux

Es precisamente dentro de tales directorios que se encuentran una serie de enlaces simbólicos a los scripts que inician y detienen los servicios del sistema. Por ejemplo, en la Fig. 2 podemos ver que /etc/rc3.d/S80postfix es un enlace simbólico que apunta a /etc/init.d/postfix, el cual es un script que levanta el servicio de correo del sistema. Dicho sea de paso, la S utilizada como prefijo en los nombres de los enlaces simbólicos indica que, en este nivel de de corrida en particular, se debe iniciar el servicio asociado.

Scripts que levantan los servicios necesarios en el runlevel actual
Figura 2 – Scripts que levantan los servicios necesarios en el runlevel actual

Por el contrario, en la Figura 3 podemos ver que tanto en el runlevel 0 como en el 6, todos los nombres de los enlaces simbólicos empiezan con K (de Kill, matar en inglés), lo cual indica que al entrar a tales runlevels todos los servicios mencionados deben detenerse:

Scripts que detienen los servicios al comenzar el apagado o reinicio del sistema
Figura 3 – Scripts que detienen los servicios al comenzar el apagado o reinicio del sistema

Finalmente, también podemos ver en la Fig. 3 que mediante el comando runlevel podemos ver en qué nivel de corrida nos encontramos actualmente (la N al comienzo de la salida indica que el sistema arrancó directamente en el nivel 3).

En el próximo post compartiremos más detalles de este tema no tan olvidado en el mundo Linux. ¡Hasta entonces!

Deja una respuesta