4.2.2. Nouveau système Init
systemd est le gestionnaire de services et de systèmes qui remplace le système init SysV utilisé dans les précédentes versions de Red Hat Enterprise Linux.
systemd est le premier processus à être lancé pendant le démarrage et le dernier à s'éteindre lors de la fermeture. Il coordonne le reste du processus de démarrage et configure le système pour l'utilisateur. Sous systemd, des programmes interdépendants peuvent être chargés en parallèle, rendant le processus de démarrage considérablement plus rapide.
systemd est en grande partie compatible avec SysV quant à l'expérience utilisateur et l'écriture de scripts d'API. Cependant, il existe certaines exceptions. Veuillez consulter Section 4.2.2.1, « Rétrocompatibilité » pour obtenir plus de détails.
La mise à niveau avec systemd implique aussi un changement avec les outils d'administration pour Red Hat Enterprise Linux. Veuillez consulter la page man systemctl ou le Guide d'administrateur système Red Hat Enterprise Linux 7 pour obtenir plus de détails.
Pour obtenir des informations supplémentaires sur le processus de démarrage, veuillez consulter le Guide d'installation Red Hat Enterprise Linux 7. Pour obtenir des informations supplémentaires sur systemd, veuillez consulter le Guide d'administrateur système Red Hat Enterprise Linux 7. Ces deux guides sont disponibles sur http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.
4.2.2.1. Rétrocompatibilité
systemd a été conçu afin d'être en grande partie compatible avec SysV quant à l'expérience utilisateur et l'écriture de scripts d'API. Cependant, il existe certains cas dans lesquels la compatibilité est limitée.
- Les commandes standard
/etc/init.d/servicename
(start
,stop
,status
) fonctionnent toujours. Cependant, Red Hat recommande d'utiliser les commandes/usr/sbin/service servicename
, car elles effectuent un transfert directement verssystemd
plutôt qu'utiliser les scripts init hérités. - La prise en charge des niveaux d'exécution est limitée. Tous les niveaux d'exécution SysV cartographient des cibles systemd ; cependant, toutes les cibles systemd ne cartographient pas les niveaux d'exécution SysV. Certaines vérifient que le niveau d'exécution actuel va bien retourner
N
(niveau d'exécution inconnu). Red Hat recommande d'éviter les vérifications de niveaux d'exécution et et de passer aux cibles systemd qui sont plus utiles. - Les niveaux d'exécution hérités 2, 3 et 4 cartographient tous la cible
multi-user.target
systemd par défaut. Les utilisateurs peuvent modifier ce comportement en configurant différentes cibles systemd. - Les services sont exécutés proprement et n'héritent d'aucun contexte de l'utilisateur les invoquant. Les scripts Init ne fonctionneront pas en selon le contexte hérité.
- systemd ne prend pas en charge de verbes supplémentaires dans les scripts init. Si vous avez besoin d'autres verbes que
start
,stop
, oustatus
, veuillez les déplacer sur un script auxiliaire. - Les informations d'en-tête de Linux Standard Base sont maintenant complètement interprétées et utilisées par systemd lors du démarrage.
- Toutes les opérations du script init sont désormais sujettes à un délai de 5 minutes afin de prévenir le blocage du système à cause d'un script init en suspension.
- systemd arrête les services en cours d'exécution uniquement ; les services qui n'ont pas été démarrés ne seront pas arrêtés lors de la fermeture.
- L'outil chkconfig affiche uniquement les services SysV et les informations sur le niveau d'exécution et peut retourner des informations trompeuses. Red Hat recommande plutôt d'utiliser la commande
sysctl
. - Les services SysV, y compris ceux possédant des privilèges root, n'ont plus le droit d'acquérir l'ordonnancement en temps réel.
- Les services ne peuvent plus lire à partir de stdin. Si vous avez besoin de scripts interactifs, envisagez le framework de requête de mot de passe minimal pris en charge par systemd. De plus amples informations sur cette fonctionnalité sont disponibles sur la page man :
$ man systemd-ask-password
- De précédentes versions de Red Hat Enterprise Linux incluaient un script de pré-installation System z (
linuxrc.s390
), qui lançait les systèmes System z lors du démarrage. Le nouveau système init rend ce script de pré-installation obsolète et les systèmes System z démarrent maintenant de la même manière que les systèmes AMD64, Intel® 64 et Power.