Los targets u objetivos systemd van a sustituir el concepto de nivel de ejecución (runlevels) del inicio SysV. Serán unidades targets las que representarán a los targets systemd, configurándose en ficheros con extensión .target, y únicamente sirven para crear una cadena de dependencias de otras unidades systemd, algo parecido a los niveles de ejecución SysV, los cuales estaban asociados al arranque de una serie de servicios y a la parada de otros, por ejemplo, la unidad graphical.target crea una cadena de dependencias de otras unidades que hace que se inicien los servicios gdm.service y accounts-daemon.service y activa a su vez el objetivo multi-user.target.
Por compatibilidad, se han creado target systemd equivalentes a los runlevels de SysV, y se muestran a continuación:
- El runlevel 0 que servía para detener todos los servicios y apagar el sistema, ahora lo representa la unidad objetivo runlevel0.target o poweroff.target.
- El runlevel 1 que servía para convertir el sistema en un sistema monousuario con el objetivo de que el root realizara tareas de administración sin usuarios conectados, ahora lo representa la unidad runlevel1.target o rescue.target.
- Los runlevels 2, 3 y 4 que servían para configurar un sistema multiusuario sin entorno gráfico, cada uno asociado a diferentes servicios según la configuración que le diera el root, ahora lo representan las unidades runlevel2.target, runlevel3.target y runlevel4.target, respectivamente, y también para los tres, multi-user.target.
- El runlevel 5 que servía para configurar un sistema multiusuario con entorno gráfico, ahora lo representa la unidad runlevel5.target o graphical.target.
- El runlevel 6 que servía para detener todos los servicios y reiniciar el sistema, ahora lo representa la unidad objetivo runlevel6.target o reboot.target.
Veamos las unidades objetivos actualmente activas en el sistema:
# systemctl list-units --type target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
bluetooth.target loaded active active Bluetooth Support
cryptsetup.target loaded active active Local Encrypted Volumes
getty.target loaded active active Login Prompts
graphical.target loaded active active Graphical Interface
integritysetup.target loaded active active Local Integrity Protected Volumes
local-fs-pre.target loaded active active Preparation for Local File Systems
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
nss-user-lookup.target loaded active active User and Group Name Lookups
paths.target loaded active active Path Units
remote-fs.target loaded active active Remote File Systems
slices.target loaded active active Slice Units
sockets.target loaded active active Socket Units
sound.target loaded active active Sound Card
swap.target loaded active active Swaps
sysinit.target loaded active active System Initialization
time-set.target loaded active active System Time Set
timers.target loaded active active Timer Units
veritysetup.target loaded active active Local Verity Protected Volumes
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.
22 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.
Podemos usar la opción --all para mostrar todas las unidades target independiente de su estado, no solo las activas:
# systemctl list-units --type target --all
UNIT LOAD ACTIVE SUB DESCRIPTION >
basic.target loaded active active Basic System
blockdev@dev-sda2.target loaded inactive dead Block Device Preparation>
cryptsetup-pre.target loaded inactive dead Local Encrypted Volumes >
cryptsetup.target loaded active active Local Encrypted Volumes
emergency.target loaded inactive dead Emergency Mode
first-boot-complete.target loaded inactive dead First Boot Complete
getty-pre.target loaded inactive dead Preparation for Logins
getty.target loaded active active Login Prompts
graphical.target loaded active active Graphical Interface
...