Systemd reemplazó a sysVinit como el administrador de servicios predeterminado en RHEL 7. Algunos de los comandos de sysVinit se vincularon a sus contrapartes de RHEL 7, sin embargo, esto eventualmente quedará obsoleto a favor de los comandos estándar de systemd en el futuro.
Niveles de ejecución de SysVinit V/s systemd
Aquí hay una comparación entre los niveles de ejecución de SysVinit y los objetivos de systemd.
Nivel de ejecución de Sysvinit | Objetivo Systemd | Función |
---|---|---|
0 | runlevel0.target, poweroff.target | Detención/apagado del sistema |
1, s, sencillo | runlevel1.objetivo, rescate.objetivo | Modo de usuario único |
2, 4 | runlevel2.target, runlevel4.target, multiusuario.target | Niveles de ejecución definidos por el usuario/específicos del sitio. Por defecto, idéntico a 3. |
3 | runlevel3.target, multiusuario.target | Multiusuario, modo no gráfico, solo consola de texto |
5 | runlevel5.target, graphical.target | Multiusuario, modo gráfico |
6 | runlevel6.target, reiniciar.target | Reiniciar |
emergencia | objetivo.de.emergencia | Modo de emergencia |
Cambiar niveles de ejecución con systemd
El destino del nivel de ejecución se puede cambiar usando el comando systemctl aislar:
# systemctl isolate multi-user.target
Para ver qué objetivos están disponibles, puede emitir la opción de unidades de lista con el tipo objetivo
# systemctl list-units --type=target
El nivel de ejecución 3 es emulado por multi-user.target. Esto se hace mediante un enlace simbólico y se puede usar indistintamente
# systemctl isolate multi-user.target # systemctl isolate runlevel3.target # ls -l /usr/lib/systemd/system/runlevel3.target lrwxrwxrwx 1 root root 17 Oct 18 11:41 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
El nivel de ejecución 5 es emulado por graphical.target. Esto también se hace mediante enlace simbólico y se puede usar indistintamente
# systemctl isolate graphical.target # systemctl isolate runlevel5.target # ls -l /usr/lib/systemd/system/runlevel5.target lrwxrwxrwx 1 root root 16 Oct 18 11:41 /usr/lib/systemd/system/runlevel5.target -> graphical.target
Cambiar el nivel de ejecución predeterminado
El nivel de ejecución predeterminado se puede cambiar usando la opción de configuración predeterminada.
# systemctl set-default multi-user.target
Para obtener el valor predeterminado establecido actualmente, puede usar la opción get-default.
# systemctl get-default
El nivel de ejecución predeterminado en systemd también se puede establecer mediante el siguiente método (aunque no recomendado).
# ln -sf /lib/systemd/system/[desired].target /etc/systemd/system/default.target
El objetivo predeterminado también se puede establecer en la línea del núcleo durante el arranque agregando la siguiente opción:
systemd.unit=multi-user.target