Aller au contenu

title: Gérer les services Linux avec systemctl : l'essentiel pour l'administration date: 2026-06-04 author: Nicolas BODAINE tags: - systemd - linux - administration - services - systemctl difficulty: débutant os: Ubuntu / Debian / RHEL status: publié


Gérer les services Linux avec systemctl : l'essentiel pour l'administration

Résumé

Apprenez à maîtriser la commande systemctl, l'outil central de systemd pour démarrer, arrêter, redémarrer et activer les services sur la plupart des distributions Linux modernes (Ubuntu, Debian, RHEL, etc.).

Propriété Valeur
Difficulté Débutant
OS / Environnement Ubuntu 24.04 / Debian / RHEL
Dernière mise à jour 2026-06-04

Contexte

Aujourd'hui, la quasi-totalité des distributions Linux modernes utilisent systemd comme système d'initialisation (PID 1). C'est lui qui orchestre le démarrage du système et gère les services en arrière-plan (serveurs web, bases de données, pare-feu, etc.).

Pour interagir avec ces services, l'outil incontournable est systemctl. Que vous gériez un serveur en production ou un environnement de lab, savoir manipuler les états des services est une compétence fondamentale en administration système.

Procédure

Étape 1 : Vérifier l'état d'un service (Status)

Avant d'agir sur un service, il est crucial de connaître son état actuel.

sudo systemctl status ssh

Cette commande vous donne plusieurs informations précieuses : - Loaded : indique si le fichier de configuration du service est bien chargé en mémoire. - Active : indique si le service est actuellement en cours d'exécution (active (running)), arrêté (inactive (dead)), ou en erreur (failed). - Main PID : le numéro de processus principal du service. - Derniers logs : systemd affiche par défaut les 10 dernières lignes de logs (accessibles plus en détail avec journalctl).

Étape 2 : Démarrer, arrêter et redémarrer (Start / Stop / Restart)

Pour modifier l'état d'exécution immédiat d'un service :

Démarrer un service :

sudo systemctl start nginx
Le service démarre immédiatement, mais si le serveur redémarre, il ne se relancera pas forcément automatiquement.

Arrêter un service :

sudo systemctl stop nginx

Redémarrer un service :

sudo systemctl restart nginx
Très utile après avoir modifié le fichier de configuration du service. Notez que cela coupe le service brièvement.

Recharger la configuration sans couper le service :

sudo systemctl reload nginx
Idéal pour appliquer une modification de configuration sans interrompre les connexions en cours (le service doit supporter cette fonctionnalité).

Étape 3 : Gérer le lancement au démarrage (Enable / Disable)

Démarrer un service ne garantit pas qu'il survivra à un redémarrage du serveur. Pour configurer le comportement au boot :

Activer le démarrage automatique :

sudo systemctl enable nginx
Cette commande crée un lien symbolique qui indique à systemd de lancer le service lors de l'amorçage.

Désactiver le démarrage automatique :

sudo systemctl disable nginx

Vérifier si un service est activé au boot :

systemctl is-enabled nginx

Combiner start et enable

Sur les versions récentes de systemd, vous pouvez démarrer et activer un service en une seule commande grâce au flag --now :

sudo systemctl enable --now nginx

Étape 4 : Lister les services

Pour avoir une vue d'ensemble de tous les services actifs sur votre machine :

systemctl list-units --type=service --state=running

Pour lister même les services arrêtés ou en échec :

systemctl list-units --type=service --all

Aide-mémoire

Commande Action immédiate Persistance au redémarrage
sudo systemctl start <service> Démarre le service Non modifiée
sudo systemctl stop <service> Arrête le service Non modifiée
sudo systemctl restart <service> Redémarre le service Non modifiée
sudo systemctl reload <service> Recharge la configuration Non modifiée
sudo systemctl enable <service> Aucune Oui (activé)
sudo systemctl disable <service> Aucune Non (désactivé)
sudo systemctl enable --now <service> Démarre le service Oui (activé)

Vérification

En cas de comportement inattendu d'un service, commencez toujours par vérifier son état :

sudo systemctl status <service>

S'il est en statut failed, vous devrez consulter ses journaux complets pour comprendre le problème en utilisant journalctl :

sudo journalctl -u <service> -e
(Le flag -u cible l'unité, -e vous amène à la fin des journaux).

Ressources