Passer au contenu principal
Accéder à l'ensemble des vidéos de ce cours en ligne en illimité à partir de 99€HT/an. Voir nos offres

Linux Initiation + Préparation LPI 101

Architecture système : matériel, démarrage et cibles systemd

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.

Architecture système : matériel, démarrage et cibles systemd
00:07:07

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 à cron pour 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