Présentation de systemd
100%

Init · Leçon 5

Présentation de systemd

Découvrez comment systemd charge des unités, résout leurs dépendances, active des targets et gère les ressources système et utilisateur.

Systemd est le gestionnaire d'initialisation et de services employé comme PID 1 par de nombreuses distributions Linux actuelles. Le projet fournit aussi des composants de journalisation, périphériques, sessions, réseau et temps, entre autres, mais les distributions choisissent ceux qu'elles déploient.

Confirmer le gestionnaire actif

Examinez l'état réel plutôt que la présence de répertoires installés :

$ ps -p 1 -o pid,comm,args=
$ systemctl is-system-running

/usr/lib/systemd/ peut exister alors qu'un autre programme joue le rôle de PID 1, et un conteneur peut exposer son propre espace de noms de PID. systemctl possède aussi des modes pour le gestionnaire utilisateur et pour les machines distantes ou conteneurs ; identifiez donc le gestionnaire visé par l'opération.

Qu'est-ce qui identifie le plus directement systemd comme gestionnaire d'initialisation du système ?

Les unités comme objets gérés

Une unité est le modèle nommé d'une ressource ou activité dans systemd. Parmi les types courants :

  • .service pour les processus et démons ;
  • .socket pour l'activation par socket ;
  • .mount et .automount pour les systèmes de fichiers ;
  • .timer et .path pour l'activation pilotée par des événements ;
  • .target pour le regroupement et la synchronisation ;
  • .device, .swap, .slice et .scope pour les autres ressources gérées.

L'état d'une unité n'est pas toujours « en cours d'exécution ». Un montage peut être monté, un minuteur en attente, un périphérique présent et une target active une fois ses dépendances atteintes.

Quel type d'unité regroupe couramment d'autres unités et fournit un point de synchronisation ?

Chemins de chargement et surcharges des unités

Les unités système peuvent être chargées depuis des chemins de la distribution et de l'administrateur, notamment :

  • /usr/lib/systemd/system/ pour les unités fournies par les paquets sur de nombreuses distributions ;
  • /run/systemd/system/ pour la configuration générée à l'exécution ou transitoire ;
  • /etc/systemd/system/ pour la configuration locale persistante et les surcharges de l'administrateur.

Les chemins exacts des fournisseurs peuvent différer. Une configuration locale prioritaire remplace les fichiers moins prioritaires de même nom. Préférez les surcharges partielles créées par systemctl edit UNITÉ à la copie et modification d'un fichier fournisseur complet, afin que les mises à jour des paquets restent visibles.

Où les surcharges locales persistantes des unités système doivent-elles normalement résider ?

Dépendances et ordre

Systemd construit une transaction à partir des relations de dépendances. Wants= et Requires= ajoutent d'autres unités à la transaction avec des degrés d'exigence différents. Before= et After= précisent l'ordre lorsque les deux unités sont planifiées ; à eux seuls, ils ne provoquent pas le démarrage de l'autre unité.

Une ligne After=network.target ne prouve pas que la connectivité, le DNS ou un point d'accès distant précis est disponible. Les services doivent employer l'intégration network-online appropriée ou mettre en œuvre leurs propres tentatives et leur propre détection de disponibilité.

Que précise à lui seul After=other.service ?

Targets et transaction de démarrage par défaut

default.target est généralement un alias vers une target comme multi-user.target ou graphical.target. Systemd lance une transaction pour celle-ci et ses dépendances, ce qui permet au travail indépendant de progresser simultanément tout en respectant les ordres explicites.

Les targets ne ressemblent aux niveaux d'exécution qu'à un niveau général de compatibilité. Plusieurs peuvent être actives en même temps, il est possible d'en créer de personnalisées et l'activité d'une target ne signifie pas que chaque service de la machine est sain.

Que sélectionne normalement default.target ?

Leçon terminée

Vous avez terminé Présentation de systemd

Vous savez maintenant décrire systemd au moyen des gestionnaires réels, des unités et des transactions.

  • Confirmer systemd au moyen du PID 1 et de la connexion au gestionnaire concernés.

  • Associer les types de ressources aux suffixes d'unités.

  • Placer les surcharges locales au-dessus de la configuration du fournisseur.

  • Distinguer force des dépendances, ordre et disponibilité applicative.

  • Considérer les targets comme des regroupements et étapes, pas comme des états exclusifs.

Conservez votre progression

Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.

Créer un compte gratuit
Leçon Suivante
Retour à Init