9.3. Travailler avec des cibles Systemd
.target et leur unique but consiste à regrouper d'autres unités Systemd dans une chaîne de dépendances. Par exemple, l'unité graphical.target, qui est utilisée pour lancer une session graphique, lance des services système comme le gestionnaire d'affichage GNOME (gdm.service) ou le services des comptes (accounts-daemon.service) et active également l'unité multi-user.target. De manière similaire, l'unité multi-user.target lance d'autres services système essentiels, tels que NetworkManager (NetworkManager.service) ou D-Bus (dbus.service) et active une autre unité cible nommée basic.target.
Tableau 9.6. Comparaison des niveaux d'exécution SysV avec les cibles Systemd
| Niveau d'exécution | Unités de cible | Description |
|---|---|---|
0 | runlevel0.target, poweroff.target | Quitter et éteindre le système. |
1 | runlevel1.target, rescue.target | Installer un shell de secours. |
2 | runlevel2.target, multi-user.target | Installer un système multi-utilisateurs non graphique. |
3 | runlevel3.target, multi-user.target | Installer un système multi-utilisateurs non graphique. |
4 | runlevel4.target, multi-user.target | Installer un système multi-utilisateurs non graphique. |
5 | runlevel5.target, graphical.target | Installer un système graphique multi-utilisateurs. |
6 | runlevel6.target, reboot.target | Quitter et redémarrer le système. |
systemctl comme décrit dans la Tableau 9.7, « Comparaison des commandes SysV init avec systemctl » ainsi que dans les sections ci-dessous. Les commandes runlevel et telinit sont toujours disponibles dans le système et fonctionnent comme prévu, mais ne sont incluses que pour des raisons de compatibilité et doivent être évitées.
Tableau 9.7. Comparaison des commandes SysV init avec systemctl
| Ancienne commande | Nouvelle commande | Description |
|---|---|---|
runlevel | systemctl list-units --type target | Répertorie les unités de cible actuellement chargées. |
telinit runlevel | systemctl isolate name.target | Modifie la cible actuelle. |
9.3.1. Afficher la cible par défaut
systemctl get-default/etc/systemd/system/default.target et affiche le résultat. Pour obtenir des informations sur comment modifier la cible par défaut, veuillez consulter la Section 9.3.3, « Modifier la cible par défaut ». Pour obtenir des informations sur comment répertorier toutes les unités de cible actuellement chargées, veuillez consulter la Section 9.3.2, « Afficher la cible actuelle ».
Exemple 9.10. Afficher la cible par défaut
~]$ systemctl get-default
graphical.target9.3.2. Afficher la cible actuelle
systemctl list-units --type targetUNIT) suivi d'une note indiquant si l'unité a été chargée (LOAD), son état d'activation de haut niveau (ACTIVE) et de bas niveau (SUB), ainsi qu'une courte description (DESCRIPTION).
systemctl list-units affiche uniquement les unités actives. Si vous souhaitez afficher toutes les unités chargées, quel que soit leur état, veuillez exécuter cette commande avec l'option de ligne de commande --all ou -a :
systemctl list-units --type target --allExemple 9.11. Afficher la cible actuelle
~]$ 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.target loaded active active Network
paths.target loaded active active Paths
remote-fs.target loaded active active Remote File Systems
sockets.target loaded active active Sockets
sound.target loaded active active Sound Card
spice-vdagentd.target loaded active active Agent daemon for Spice guests
swap.target loaded active active Swap
sysinit.target loaded active active System Initialization
time-sync.target loaded active active System Time Synchronized
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.
17 loaded units listed. Pass --all to see loaded but inactive units, too.
To show all installed unit files use 'systemctl list-unit-files'.9.3.3. Modifier la cible par défaut
root :
systemctl set-default name.targetmulti-user). Cette commande remplace le fichier /etc/systemd/system/default.target par un lien symbolique pointant vers /usr/lib/systemd/system/name.target, où name est le nom de l'unité cible que vous souhaitez utiliser. Pour obtenir davantage d'informations sur la manière de modifier la cible actuelle, veuillez consulter la Section 9.3.4, « Modifier la cible actuelle ». Pour obtenir des informations sur la manière de répertorier toutes les unités de cible actuellement chargées, veuillez consulter la Section 9.3.2, « Afficher la cible actuelle ».
Exemple 9.12. Modifier la cible par défaut
multi-user.target par défaut, veuillez saisir la commande suivante dans une invite de shell en tant qu'utilisateur root :
~]# systemctl set-default multi-user.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'9.3.4. Modifier la cible actuelle
root :
systemctl isolate name.targetmulti-user). Cette commande remplace l'unité de cible nommée name et toutes ses unités dépendantes, et arrête immédiatement toutes les autres. Pour obtenir des informations sur la manière de modifier la cible par défaut, veuillez consulter la Section 9.3.3, « Modifier la cible par défaut ». Pour obtenir des informations sur la manière de répertorier toutes les unités de cible actuellement chargées, veuillez consulter la Section 9.3.2, « Afficher la cible actuelle ».
Exemple 9.13. Modifier la cible actuelle
multi-user.target dans la session actuelle, veuillez saisir la commande suivante en tant qu'utilisateur root :
~]# systemctl isolate multi-user.target9.3.5. Passer en mode de secours
root :
systemctl rescuesystemctl isolate rescue.target, mais elle envoie également un message informatif à tous les utilisateurs actuellement connectés au système. Pour empêcher Systemd d'envoyer ce message, veuillez exécuter cette commande avec l'option de ligne de commande --no-wall :
systemctl --no-wall rescueExemple 9.14. Passer en mode de secours
root :
~]# systemctl rescue
Broadcast message from root@localhost on pts/0 (Fri 2013-10-25 18:23:15 CEST):
The system is going down to rescue mode NOW!9.3.6. Passer en mode d'urgence
root :
systemctl emergencysystemctl isolate emergency.target, mais elle envoie également un message informatif à tous les utilisateurs actuellement connectés au système. Pour empêcher Systemd d'envoyer ce message, veuillez exécuter cette commande avec l'option de ligne de commande --no-wall :
systemctl --no-wall emergencyExemple 9.15. Passer en mode d'urgence
root :
~]# systemctl --no-wall emergency
Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.