Cambiar runlevel en RHEL y CentOS 7 (adiós inittab)

Parece que ahora la moda es complicar las cosas. Si algo funciona bien, ¿para qué cambiarlo?

A partir de la versión 7 de RHEL, CentOS y derivados, cambiar los niveles de ejecución ya no pasa por modificar el archivo /etc/inittab y cambiar el id de runlevel tal y como hacíamos hasta la versión 6:

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

Ahora, tanto para controlar los niveles de ejecución como los servicios (systemd) se utiliza el comando systemctl con los parámetros correspondientes.

Por ejemplo, para consultar el nivel de ejecución en el que nos encontramos utilizaremos el parámetro get-default:

# systemctl get-default
multi-user.target

Como podéis observar, en lugar de dar el identificador numérico del runlevel muestra el “target” en el que nos encontramos:

# systemctl list-units --type=target
UNIT                LOAD   ACTIVE SUB    DESCRIPTION
basic.target        loaded active active Basic System
cryptsetup.target   loaded active active Encrypted Volumes
getty.target        loaded active active Login Prompts
graphical.target    loaded active active Graphical Interface
local-fs-pre.target loaded active active Local File Systems (Pre)
local-fs.target     loaded active active Local File Systems
multi-user.target   loaded active active Multi-User System
[...]

Para cambiar el nivel de ejecución por defecto utilizaremos el parámetro set-default seguido del “UNIT” asociado:

# systemctl set-default multi-user.target

En la salida de la ejecución veréis que el comando realmente lo único que hace son crear enlaces simbólicos:

rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'

3 comentarios en “Cambiar runlevel en RHEL y CentOS 7 (adiós inittab)

  1. Parece que sí que está de moda complicar las cosas, pero opino que no necesariamente es un cambio a peor ni resulta más complicado que antes. Al principio de usar CentOS 7 me agobié bastantes días con todos los cambios de comandos y tenía la tentación de usarlo en modo 6.x… Pero ahora, al cabo de un tiempo de usar por ejemplo systemctl, ya no cambiaría los nuevos procedimientos por los antiguos porque ayudan a tener una visión más sintética del sistema.

    • Sí, pero somos muy comodones y rehacios al cambio :)

      Hasta que no se empiece a meter esta versión en sistemas productivos (que ya se empiezan a ver…) no nos la tomaremos en serio. Es como el nuevo firewall, más de lo mismo. Toda la vida con iptables y ahora firewalld….

      Saludos

  2. Estoy en modo gráfico pero solo me levanta en modo consola o línea de comandos. Pienso que puede ser mi tarjeta gráfica, pero es de 2GB, ram de 4GB . ¿Alguna sugerencia de cómo volver al entorno gráfico?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *