Aller au contenu
Administration Linux medium

Gérer les services avec systemd

6 min de lecture

systemctl est la commande qui pilote tous les services de votre système Linux. Avec elle, vous démarrez SSH, arrêtez un serveur web ou activez un service au boot — le tout en une seule ligne. Ce guide couvre les gestes quotidiens indispensables.

  • Le rôle de systemd et des services (units)
  • Vérifier l’état d’un service avec systemctl status
  • Démarrer, arrêter et redémarrer un service
  • Activer un service au démarrage avec enable
  • Lister les services et repérer ceux en échec

systemd est le gestionnaire de système et de services sur la grande majorité des distributions Linux modernes (Debian, Ubuntu, RHEL, Fedora, Arch…). Il :

  • lance les services au démarrage du système,
  • les surveille en continu,
  • les redémarre automatiquement en cas de plantage (si configuré),
  • gère aussi les points de montage, les timers, les sockets…

Chaque élément géré par systemd s’appelle une unit. Le type le plus courant est le service (fichier .service).

La commande la plus utile au quotidien :

Fenêtre de terminal
systemctl status sshd
Résultat
● sshd.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-04-06 08:00:00 UTC; 2h ago
Main PID: 850 (sshd)
Tasks: 1 (limit: 4915)
Memory: 5.2M
CPU: 32ms
CGroup: /system.slice/sshd.service
└─850 sshd: /usr/sbin/sshd -D

Les informations clés :

ChampSignification
Active: active (running)Le service tourne
enabledIl démarrera automatiquement au boot
Main PIDLe PID du processus principal
LoadedChemin du fichier unit

Les états possibles de Active :

ÉtatSignification
active (running)Le service fonctionne
inactive (dead)Le service est arrêté
failedLe service a planté
activatingLe service est en cours de démarrage
  1. Démarrer un service arrêté :

    Fenêtre de terminal
    sudo systemctl start nginx
  2. Arrêter un service en cours :

    Fenêtre de terminal
    sudo systemctl stop nginx
  3. Redémarrer un service (arrêt + démarrage) :

    Fenêtre de terminal
    sudo systemctl restart nginx
  4. Recharger la configuration sans couper le service :

    Fenêtre de terminal
    sudo systemctl reload nginx

Par défaut, un service démarré avec start ne survivra pas à un reboot. Pour qu’il se lance automatiquement au démarrage :

Fenêtre de terminal
sudo systemctl enable nginx
Résultat
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.

Pour le désactiver au démarrage :

Fenêtre de terminal
sudo systemctl disable nginx

Pour activer et démarrer en une seule commande :

Fenêtre de terminal
sudo systemctl enable --now nginx
Fenêtre de terminal
systemctl is-enabled nginx
Résultat
enabled
Fenêtre de terminal
systemctl list-units --type=service
Résultat (extrait)
UNIT LOAD ACTIVE SUB DESCRIPTION
cron.service loaded active running Regular background program processing
nginx.service loaded active running A high performance web server
sshd.service loaded active running OpenBSD Secure Shell server
Fenêtre de terminal
systemctl --failed
Résultat
UNIT LOAD ACTIVE SUB DESCRIPTION
myapp.service loaded failed failed My application

Un service en failed a rencontré une erreur. Pour en savoir plus :

Fenêtre de terminal
systemctl status myapp
journalctl -u myapp -n 20
CommandeQuestion poséeRéponse
systemctl is-active nginxLe service tourne-t-il ?active ou inactive
systemctl is-enabled nginxDémarre-t-il au boot ?enabled ou disabled
systemctl is-failed nginxA-t-il planté ?failed ou active

Ces commandes sont utiles dans des scripts : elles retournent un code de sortie (0 = oui, 1 = non).

CommandeAction
systemctl status serviceVoir l’état détaillé
sudo systemctl start serviceDémarrer
sudo systemctl stop serviceArrêter
sudo systemctl restart serviceRedémarrer
sudo systemctl reload serviceRecharger la configuration
sudo systemctl enable serviceActiver au démarrage
sudo systemctl disable serviceDésactiver au démarrage
sudo systemctl enable --now serviceActiver + démarrer
systemctl list-units --type=serviceLister les services actifs
systemctl --failedLister les services en échec
SymptômeCause probableSolution
Unit nginx.service not foundLe service n’est pas installéInstaller le paquet : sudo apt install nginx
Active: failed après startErreur de configuration ou port occupéLire les logs : journalctl -u nginx -n 30
Le service s’arrête après le rebootenable n’a pas été faitLancer sudo systemctl enable service
reload échoueLe service ne supporte pas reloadUtiliser restart à la place
Failed to start: Address already in useUn autre processus utilise le portIdentifier avec ss -tlnp | grep :80 puis arrêter le processus
  • systemctl status est la commande réflexe pour vérifier l’état d’un service.
  • start/stop/restart contrôlent le service immédiatement.
  • enable rend le démarrage automatique au boot ; disable le supprime.
  • systemctl --failed identifie rapidement les services en erreur.
  • Les logs détaillés d’un service se consultent avec journalctl -u service.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn