Las versiones anteriores de CentOS/RHEL Linux usan niveles de ejecución de inicio de SysV . Estos niveles de ejecución brindaron la capacidad de usar sistemas para diferentes propósitos y solo iniciar los servicios necesarios para un propósito específico, en un nivel de ejecución específico. En RHEL 7, los niveles de ejecución se han reemplazado por unidades de destino systemd . Las unidades objetivo tienen un .objetivo extensión y similares a los niveles de ejecución, las unidades de destino le permiten iniciar un sistema solo con los servicios que se requieren para un propósito específico.
RHEL 7 se distribuye con un conjunto de objetivos predefinidos que son similares a los niveles de ejecución de las versiones anteriores de RedHat Linux. El siguiente comando devuelve el nombre de ruta absoluto de estas unidades de destino de nivel de ejecución systemd predefinidas:
# find / -name "runlevel*.target" /usr/lib/systemd/system/runlevel5.target /usr/lib/systemd/system/runlevel0.target /usr/lib/systemd/system/runlevel6.target /usr/lib/systemd/system/runlevel1.target /usr/lib/systemd/system/runlevel2.target /usr/lib/systemd/system/runlevel3.target /usr/lib/systemd/system/runlevel4.target
Comparación de niveles de ejecución SysV y unidades objetivo
Nivel de ejecución | Unidades objetivo | Descripción |
---|---|---|
0 | runlevel0.target, poweroff.target | Apagar y apagar |
1 | runlevel1.objetivo, rescate.objetivo | Configurar un shell de rescate |
2,3,4 | nivel de ejecución[234].objetivo, multiusuario.objetivo | Configurar un shell multiusuario no gráfico |
5 | runlevel5.target, graphical.target | Configurar un shell gráfico multiusuario |
6 | runlevel6.target, reiniciar.target | Apague y reinicie el sistema |
Cada archivo runlevel[0123456].target es un enlace simbólico a los equivalentes de destino de inicio del sistema. Por ejemplo:
# cd /usr/lib/systemd/system # ls -l runlevel* lrwxrwxrwx. 1 root root 15 Sep 23 19:52 runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 Sep 23 19:52 runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 Sep 23 19:52 runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 Sep 23 19:52 runlevel6.target -> reboot.target
1. Ver unidad objetivo predeterminada/actual
Utilice el siguiente comando para ver qué unidad de destino se utiliza de forma predeterminada:
# systemctl get-default graphical.target
El objetivo.gráfico la unidad de destino indica que el sistema se está ejecutando en un estado gráfico multiusuario. Esto es similar al nivel de ejecución 5 en un sistema de inicio SysV. Puede verificar esto usando el antiguo comando runlevel :
# runlevel N 5
La unidad objetivo predeterminada está representada por /etc/systemd/system/default.target expediente. Este archivo es un enlace simbólico a la unidad de destino predeterminada actual. Por ejemplo:
# ls -lrt /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 36 Sep 23 20:01 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
2. enumere los objetivos actualmente activos
Para ver las unidades objetivo actualmente activas en su sistema, use el siguiente comando.
# 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 network-online.target loaded active active Network is Online network.target loaded active active Network nfs-client.target loaded active active NFS client services nss-user-lookup.target loaded active active User and Group Name Lookups paths.target loaded active active Paths remote-fs-pre.target loaded active active Remote File Systems (Pre) remote-fs.target loaded active active Remote File Systems slices.target loaded active active Slices sockets.target loaded active active Sockets swap.target loaded active active Swap sysinit.target loaded active active System Initialization timers.target loaded active active Timers LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 19 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
3. Cambiar la unidad objetivo predeterminada
Utilice el siguiente comando para cambiar la unidad de destino predeterminada (por ejemplo, para cambiar la unidad de destino predeterminada a multiusuario):
# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
Observe que el enlace simbólico default.target ha cambiado y ahora apunta a la unidad multi-user.target:
# ls -lrt /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 41 Sep 24 11:58 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
4. Cambiar la unidad de destino del sistema actualmente activa
El establecer predeterminado El comando no cambia el estado actual del sistema. Para cambiar el objetivo del sistema actualmente activo (por ejemplo, para cambiar el objetivo del sistema actualmente activo a multi-user.target):
# systemctl isolate multi-user.target
Este comando es similar a usar telinit [nivel de ejecución] para cambiar el nivel de ejecución actual. Este comando telinit todavía existe, pero solo se incluye por razones de compatibilidad.
También puede usar el siguiente comando para ingresar la unidad de destino predeterminada:
# systemctl default
Esto es equivalente al siguiente comando:
# systemctl isolate default.targetCentOS/RHEL 7:referencia de la línea de comandos de systemd (hoja de trucos)
CentOS/RHEL 7:cómo cambiar los niveles de ejecución (objetivos) con systemd
CentOS/RHEL 7:guía para principiantes sobre las unidades de servicio de systemd
CentOS / RHEL 7:Guía para principiantes de systemd