# rm-rf.es

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'
Salir de la versión móvil