1. La révolution systemd dans l’écosystème Linux

Initialement orchestré par des scripts séquentiels SysVinit, le démarrage des systèmes Linux a été unifié et accéléré par systemd, aujourd’hui standard universel sur Debian, Ubuntu, Red Hat, SUSE et Arch Linux. Systemd apporte :

  • Un démarrage massivement parallélisé grâce à l’activation par sockets et bus D-Bus.
  • Une gestion unifiée des démons, processus, points de montage, périphériques et interfaces réseau.
  • Le suivi rigoureux des processus enfants à travers les Control Groups (cgroups), empêchant les processus orphelins d’échapper à l’arrêt du service.

2. La typologie des unités systemd (Units)

Toute ressource gérée par systemd est décrite sous forme d’une unité typée par son extension :

  • .service : Démon ou processus applicatif d’arrière-plan (ex: nginx.service).
  • .target : Regroupement logique d’unités définissant un état système (remplaçant les anciens runlevels SysV).
  • .timer : Planificateur temporel remplaçant les tâches cron avec une intégration native aux journaux.
  • .socket : Socket réseau ou IPC en attente de connexion entrante pour déclencher un service à la demande.
  • .mount / .automount : Points de montage de systèmes de fichiers gérés dynamiquement.

3. Commandes indispensables de pilotage avec systemctl

L’utilitaire systemctl constitue le point d’entrée unique de gestion :

# Vérifier l'état détaillé d'un service
systemctl status nginx.service

# Démarrer, arrêter, redémarrer ou recharger la configuration à chaud
sudo systemctl start postgresql
sudo systemctl reload nginx
sudo systemctl stop apache2

# Activer le démarrage automatique au boot du système
sudo systemctl enable nginx

# Masquer un service pour interdire son lancement même manuel
sudo systemctl mask cups.service

4. Diagnostic du temps de démarrage et graphes de dépendances

L’administrateur peut identifier avec une précision chirurgicale les services ralentissant le démarrage du serveur :

# Mesurer la durée globale du démarrage
systemd-analyze

# Lister les services les plus lents par ordre décroissant
systemd-analyze blame | head -n 10

# Identifier la chaîne critique bloquante
systemd-analyze critical-chain

Concept d’équivalence : La cible multi-user.target correspond à l’ancien Runlevel 3 (mode console multi-utilisateurs), tandis que graphical.target équivaut au Runlevel 5 (bureau graphique). Le basculement s’opère instantanément via systemctl isolate multi-user.target.