Gestión de targets (runlevels)

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Los sistemas de inicio GNU/Linux reconocen varios estados de ejecución que definen el conjunto de servicios y características activas por defecto en el sistema. A este concepto se le ha denominado tradicionalmente runlevel, aunque en el argot de systemd se les denomina targets.

Una diferencia importante respecto al concepto tradicional de runlevel de sysinit es que en systemd un sistema pueda tener activos varios targets al mismo tiempo.

Mediante el uso de los targets podemos establecer en el servidor un determinado estado. Los targets son puntos de sincronización que el sistema utiliza para ese fin. Un aspecto fundamental es que existen dependencias entre targets, de forma que éstos están interrelacionados. Existe también el concepto de default target, equivalente al concepto de default runlevel en sysinit.

Asociado a los targets tenemos un conjunto de units, que indicaría todos los aspectos del sistema vinculados a ese target, como por ejemplo los servicios que se inician en el mismo.

Algunos comandos de gestión de targets

  • Mostraría los target disponibles en el sistema
systemctl list-unit-files --type=target
  • Mostraría los targets activos en el sistema
systemctl list-units --type=target
  • Mostraría el target por defecto del sistema
systemctl get-default
  • Establece el default target modo multi-user (multiusuario)
systemctl set-default multi-user.target
  • Muestra las units vinculadas al target indicado
systemctl list-dependencies multi-user.target
  • Realiza la transición del sistema al estado definido por el target
systemctl isolate multi-user.target

detendría todos las units no vinculadas a ese target. Es fundamental tener en cuenta al utilizar este comando que no se detengan servicios esenciales para el sistema. El ejemplo anterior tendría sentido cuando estamos ejecutando un target en el sistema de nivel de servicio superior, por ejemplo el target graphical.target, que ejecutaría todas las units de una interfaz gráfica completa. Al ejecutar ese comando aislamos el estado multiuser.target que detendría todas las units que estando activada en el target anterior no son necesarias para el target multiuser.

  • Existen atajos para algunos targets para facilitar su invocación

Algunos ejemplos

systemctl rescue

Atajo de

systemctl isolate rescue.target

Otros:

systemctl halt
systemctl poweroff
systemctl reboot

Volver

JavierFP 17:44 11 dec 2017 (CET)