Linux
systemdIntermédiaire

systemd — gérer les services Linux

Mis à jour le 29 juin 2026#systemd#systemctl#services#journalctl#units

Qu'est-ce que systemd ?

systemd est le système d'initialisation (PID 1) de la plupart des distributions modernes (Debian, Ubuntu, RHEL…). Il démarre le système et gère les services (démons), leurs dépendances et leurs journaux. Tout est modélisé sous forme d'units.

Type d'unitRôle
.serviceun service / démon (ex. ssh.service)
.targetun groupe d'units (≈ ancien runlevel)
.socketactivation à la demande via un socket
.timertâche planifiée (alternative à cron)
.mountpoint de montage

Piloter un service : systemctl

systemctl status ssh        # état détaillé + dernières lignes de log
systemctl start ssh         # démarre maintenant
systemctl stop ssh          # arrête maintenant
systemctl restart ssh       # redémarre
systemctl reload ssh        # recharge la conf sans couper le service

Démarrer ou non au boot

C'est la distinction la plus importante — et un grand classique d'examen :

CommandeEffet
systemctl start sshdémarre maintenant (pas au prochain boot)
systemctl enable sshdémarre automatiquement au démarrage
systemctl enable --now sshles deux en une commande
systemctl disable sshne démarre plus au boot

💡 startenable : start agit sur l'instant, enable agit sur le démarrage. Pour vérifier : systemctl is-active ssh (en cours ?) et systemctl is-enabled ssh (activé au boot ?).

Après avoir édité une unit

systemctl daemon-reload     # recharge les fichiers d'units modifiés

Sans daemon-reload, systemd continue d'utiliser l'ancienne définition.

Consulter les journaux : journalctl

journalctl -u ssh           # journaux du service ssh
journalctl -u ssh -f        # suivi en temps réel (follow)
journalctl -b               # journaux depuis le dernier démarrage
journalctl -p err           # uniquement les erreurs

Cibles (targets)

Les targets remplacent les anciens runlevels :

TargetÉquivalent
multi-user.targetmode texte multi-utilisateurs (runlevel 3)
graphical.targetinterface graphique (runlevel 5)

systemctl get-default affiche la cible par défaut ; systemctl set-default multi-user.target la change.