Comprendre les services et le rôle de systemd
Accéder à l'ensemble des vidéos de ce cours en illimité à partir de 99€ HT/an.
Script
Objectif et utilité
Vous allez comprendre ce qu'est un service sous Linux, d'où vient le suffixe « d » de nombreux exécutables, et ce que fait systemd.
Prérequis et point de départ
- Voir « Distinguer exécutable et processus ».
Explication et démarche
Un service
Un service est un processus qui s'exécute en arrière-plan, en général aussi longtemps que le système fonctionne ou jusqu'à ce qu'on l'arrête. Le plus souvent, il s'exécute en tant que root ou sous un compte système dédié.
- Les services système fournissent des fonctionnalités au système ou au réseau : interface réseau, serveur web, DNS, messagerie…
- Il existe aussi des services propres à un utilisateur.
Le suffixe « d »
Historiquement, on appelait les services des démons (daemons). D'où la convention, pour les protocoles client-serveur, d'ajouter un d à l'exécutable serveur :
ssh: le client ;sshd: le serveur SSH ;httpd: le serveur web Apache sur les distributions Red Hat ;systemd: le démon qui gère le système.
systemd
systemd est d'abord un gestionnaire de services : il démarre et arrête les services, notamment au démarrage du système, dans le bon ordre, via son composant init.
Au fil du temps, il a intégré beaucoup d'autres fonctions :
- les timers, alternative à
cronpour exécuter des tâches planifiées ; - journald, qui remplace les implémentations de syslog (comme rsyslog) pour la journalisation ;
- les sockets, qui remplacent xinetd ;
- la synchronisation de l'heure, le nom d'hôte, la gestion du réseau, voire des conteneurs (
systemd-nspawn).
Une conception discutée
Cette approche « tout-en-un » a suscité de fortes controverses : elle s'écarte de la philosophie Unix « KISS » (Keep It Simple, Stupid), selon laquelle un logiciel fait une seule tâche, et la fait bien, et l'on combine plusieurs logiciels pour les tâches complexes.
systemd s'est néanmoins imposé dans les grandes distributions, notamment grâce à des démarrages plus rapides et à une gestion cohérente de nombreux éléments, plus simple à apprendre.
Résultat attendu et vérification
Vous savez expliquer la différence entre ssh et sshd, et citer trois fonctions de systemd.
Points de vigilance et bonnes pratiques
- La plupart du temps, vous interagirez avec des services système, via la commande
systemctl.
À retenir et mise en pratique
- Service = processus d'arrière-plan de longue durée.
- systemd : gestionnaire de services, et bien plus (timers, journal, sockets…).
Exercice. Affichez les processus dont le nom se termine par d avec ps -e -o comm | grep 'd$', et identifiez-en trois.
Critère de réussite : vous reconnaissez par exemple sshd, systemd-journald ou systemd-logind.
Référence
- Site du projet systemd : https://systemd.io/
- Page de manuel
systemd(1): https://manpages.debian.org/systemd.1