Les versions précédentes de CentOS/RHEL Linux utilisent les niveaux d'exécution SysV init . Ces niveaux d'exécution offraient la possibilité d'utiliser des systèmes à des fins différentes et de démarrer uniquement les services nécessaires à un objectif spécifique, à un niveau d'exécution spécifique. Dans RHEL 7, les niveaux d'exécution ont été remplacés par des unités cibles systemd . Les unités cibles ont un .target extension et similaires aux niveaux d'exécution, les unités cibles vous permettent de démarrer un système avec uniquement les services requis pour un objectif spécifique.
RHEL 7 est distribué avec un ensemble de cibles prédéfinies similaires aux niveaux d'exécution des versions précédentes de RedHat Linux. La commande suivante renvoie le chemin d'accès absolu de ces unités cibles de niveau d'exécution systemd prédéfinies :
# 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
Comparaison des niveaux d'exécution SysV et des unités cibles
Niveau d'exécution | Unités cibles | Description |
---|---|---|
0 | runlevel0.target, poweroff.target | Arrêter et éteindre |
1 | runlevel1.target, rescue.target | Configurer un shell de secours |
2,3,4 | runlevel[234].target, multi-user.target | Configurer un shell multi-utilisateur non graphique |
5 | runlevel5.target, graphique.target | Configurer un shell multi-utilisateur graphique |
6 | runlevel6.target, reboot.target | Arrêter et redémarrer le système |
Chaque fichier runlevel[0123456].target est un lien symbolique vers les équivalents cibles de démarrage du système. Par exemple :
# 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. Afficher l'unité cible par défaut/actuelle
Utilisez la commande suivante pour voir quelle unité cible est utilisée par défaut :
# systemctl get-default graphical.target
La cible.graphique L'unité cible indique que le système fonctionne dans un état graphique multi-utilisateurs. Ceci est similaire au niveau d'exécution 5 dans un système d'initialisation SysV. Vous pouvez le vérifier en utilisant l'ancienne commande runlevel :
# runlevel N 5
L'unité cible par défaut est représentée par /etc/systemd/system/default.target dossier. Ce fichier est un lien symbolique vers l'unité cible par défaut actuelle. Par exemple :
# 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. lister les cibles actuellement actives
Pour afficher les unités cibles actuellement actives sur votre système, utilisez la commande ci-dessous.
# 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. Modifier l'unité cible par défaut
Utilisez la commande suivante pour modifier l'unité cible par défaut (par exemple, pour remplacer la valeur par défaut par l'unité multi-user.target) :
# 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.
Notez que le lien symbolique default.target a changé et pointe maintenant vers l'unité 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. Modifier l'unité cible du système actuellement actif
Le set-default La commande ne modifie pas l'état actuel du système. Pour changer la cible système actuellement active (par exemple, pour changer la cible système actuellement active en multi-user.target) :
# systemctl isolate multi-user.target
Cette commande est similaire à l'utilisation de telinit [runlevel] pour modifier le niveau d'exécution actuel. Cette commande telinit existe toujours mais n'est incluse que pour des raisons de compatibilité.
Vous pouvez également utiliser la commande suivante pour saisir l'unité cible par défaut :
# systemctl default
Cela équivaut à la commande suivante :
# systemctl isolate default.targetCentOS / RHEL 7 :référence de la ligne de commande systemd (aide-mémoire)
CentOS / RHEL 7 :comment modifier les niveaux d'exécution (cibles) avec systemd
CentOS / RHEL 7 :guide du débutant sur les unités de service systemd
CentOS / RHEL 7 :Guide du débutant sur systemd