- 1 1. Introduction
- 2 2. Comment afficher une liste de services avec systemctl
- 3 3. Gestion de base des services avec systemctl
- 4 4. Options utiles de systemctl et techniques avancées
- 5 5. Problèmes courants et dépannage
- 6 6. Résumé
- 7 7. Questions fréquemment posées (FAQ)
- 7.1 Q1. Quelle est la différence entre systemctl et la commande service ?
- 7.2 Q2. Quelle est la différence entre list-units et list-unit-files ?
- 7.3 Q3. Les services en état statique peuvent-ils être démarrés ?
- 7.4 Q4. Un service est masqué et ne peut pas être démarré. Que faire ?
- 7.5 Q5. Existe-t-il une méthode GUI pour voir le statut d’un service ?
- 7.6 Q6. Où placer les fichiers d’unité personnalisés ?
1. Introduction
Lorsque vous utilisez Linux, il existe de nombreuses situations où vous souhaitez vérifier l’état des services ou afficher une liste des processus en cours d’exécution. Dans ces cas, la commande systemctl est extrêmement utile.
Cette commande fonctionne avec systemd, le système de démarrage et le gestionnaire de services utilisé dans les distributions Linux modernes. Elle offre un large éventail de fonctions, notamment la vérification de l’état d’un service (unité), le démarrage, l’arrêt, le redémarrage des services et l’affichage des listes de services.
Du point de vue d’une « liste de services systemctl », vous pouvez non seulement voir les services actuellement actifs, mais aussi les services désactivés et ceux configurés pour un démarrage automatique, ce qui vous permet de comprendre la configuration globale du système sous plusieurs angles.
Ce chapitre explique brièvement ce qu’est systemctl et décrit ce que vous apprendrez dans cet article.
Qu’est‑ce que systemctl ?
systemctl est l’outil standard pour contrôler et inspecter les différentes « unités » telles que les services, les cibles et les points de montage sur les distributions Linux basées sur systemd.
Par exemple, il sert à démarrer ou arrêter des services comme Apache (httpd) et SSH, ainsi qu’à afficher leur état sous forme de liste.
La relation entre systemd et systemctl
systemd est le mécanisme central responsable du processus de démarrage de Linux et de la gestion des services, remplaçant les anciens systèmes tels que SysVinit et Upstart. L’outil en ligne de commande utilisé pour interagir avec systemd est systemctl.
En d’autres termes, si systemd est le centre de commande, systemctl agit comme l’opérateur qui délivre les instructions.
Ce que vous apprendrez dans cet article
Cet article répond aux questions suivantes :
- Comment afficher une liste des services actuellement en cours d’exécution ?
- Comment afficher tous les services, y compris les inactifs ?
- Comment vérifier si un service démarre automatiquement au démarrage du système ?
- Comment interpréter la sortie des listes de services ?
Pour garantir la clarté pour les débutants sous Linux, des exemples de commandes et des explications détaillées des sorties sont fournis.
2. Comment afficher une liste de services avec systemctl
En administration système Linux, comprendre rapidement la liste des services est extrêmement important. En utilisant la commande systemctl, vous pouvez facilement vérifier les services actifs, les services inactifs et les paramètres de configuration de démarrage.
Cette section explique les méthodes d’affichage des services sous les trois angles suivants :
- Liste des services actifs
- Liste de tous les services (y compris les inactifs)
- Liste des fichiers d’unité de service (y compris les paramètres de démarrage)
2.1 Affichage de la liste des services actuellement actifs
Pour vérifier les services qui sont en cours d’exécution, utilisez la commande suivante :
systemctl list-units --type=service
Cette commande affiche une liste des services actifs. La sortie comprend les champs suivants :
| Field | Description |
|---|---|
| UNIT | Service name (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service state (e.g., active, inactive, failed) |
| SUB | More detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Service description |
Ces informations vous permettent de déterminer, par exemple, si nginx est en cours d’exécution ou quels services sont actuellement actifs.
2.2 Affichage de tous les services, y compris les inactifs
Par défaut, list-units ne montre que les services actifs. Pour inclure les services inactifs, ajoutez l’option --all.
systemctl list-units --type=service --all
Cela affiche les services inactifs ainsi que ceux qui n’ont jamais été démarrés.
Vous pouvez filtrer davantage les résultats par état du service à l’aide de l’option --state= :
systemctl list-units --type=service --state=inactive
Ceci est utile lorsque vous ne souhaitez afficher que les services arrêtés.
2.3 Visualisation de la liste des fichiers d’unité de service
Pour vérifier quels services sont activés ou désactivés au démarrage, utilisez la commande suivante :
systemctl list-unit-files --type=service
Cette commande affiche tous les fichiers d’unité de service ainsi que leurs états activés ou désactivés.
| STATE | Description |
|---|---|
| enabled | Automatically starts at boot |
| disabled | Does not start automatically |
| static | Cannot be enabled or disabled manually |
| masked | Explicitly disabled and cannot be started |
Cette liste vous aide à comprendre visuellement quels services démarrent au boot et à identifier les services masqués par erreur.
3. Gestion de base des services avec systemctl
La commande systemctl vous permet de démarrer, arrêter, redémarrer les services et de configurer leur comportement au démarrage.
3.1 Démarrer un service
sudo systemctl start service-name
Exemple :
sudo systemctl start httpd.service
3.2 Arrêter un service
sudo systemctl stop service-name
Exemple :
sudo systemctl stop sshd.service
3.3 Redémarrer un service
sudo systemctl restart service-name
Exemple :
sudo systemctl restart nginx.service
3.4 Vérifier le statut du service
systemctl status service-name
Exemple :
systemctl status mysql.service
3.5 Activer le démarrage automatique
sudo systemctl enable service-name
Exemple :
sudo systemctl enable docker.service
3.6 Désactiver le démarrage automatique
sudo systemctl disable service-name
Exemple :
sudo systemctl disable cups.service
3.7 Vérifier le statut du démarrage
systemctl is-enabled service-name
enabled
4. Options utiles de systemctl et techniques avancées
4.1 Lister les dépendances d’un service
systemctl list-dependencies service-name
4.2 Voir le contenu du fichier d’unité
systemctl cat service-name

4.3 Recharger les fichiers d’unité
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
4.4 Voir les journaux du service
journalctl -u service-name
5. Problèmes courants et dépannage
5.1 Lorsqu’un service ne démarre pas
systemctl status service-name
journalctl -xe
5.2 Comprendre les messages d’erreur dans la sortie de status
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code)
5.3 Services qui s’arrêtent immédiatement après le démarrage
- Erreurs de configuration
- Conflits de ports
- Fichiers ou répertoires manquants
- Permissions insuffisantes
5.4 Lorsqu’un service est masqué
sudo systemctl unmask service-name
6. Résumé
La gestion des services est une partie essentielle des opérations système Linux, et systemctl joue un rôle central dans le contrôle et la compréhension des services système.
7. Questions fréquemment posées (FAQ)
Cette section répond aux questions courantes sur systemctl et la gestion des services.
Q1. Quelle est la différence entre systemctl et la commande service ?
A1.
systemctl est une commande de gestion des services conçue pour les systèmes basés sur systemd et constitue l’outil standard utilisé par la plupart des distributions Linux modernes telles qu’Ubuntu, CentOS et Fedora.
En revanche, la commande service était utilisée avec les anciens systèmes basés sur SysVinit. Bien qu’elle puisse encore exister pour des raisons de compatibilité, l’utilisation de systemctl est fortement recommandée dans les environnements systemd.
Q2. Quelle est la différence entre list-units et list-unit-files ?
A2.
list-unitsaffiche les unités actuellement chargées, c’est‑à‑dire les services qui sont en cours d’exécution ou qui ont été utilisés récemment.list-unit-filesaffiche tous les fichiers d’unité et leur statut d’activation (activé, désactivé, etc.). En bref, l’un montre ce qui est actuellement actif, tandis que l’autre montre comment les services sont configurés.
Q3. Les services en état statique peuvent-ils être démarrés ?
A3.
Oui, les services en état static peuvent être démarrés manuellement avec start. Cependant, ils ne peuvent pas être activés pour un démarrage automatique au démarrage.
Cela est dû au fait que les services statiques sont conçus pour être démarrés en tant que dépendances d’autres unités.
Q4. Un service est masqué et ne peut pas être démarré. Que faire ?
A4.
Un service masked est complètement désactivé et ne peut pas être démarré. Pour résoudre cela, démasquez le service en utilisant la commande suivante :
sudo systemctl unmask service-name
Après le démasquage, vous pouvez démarrer le service normalement.
Q5. Existe-t-il une méthode GUI pour voir le statut d’un service ?
A5.
Selon la distribution, des outils tels que gnome-system-monitor, KSysGuard ou Cockpit vous permettent de visualiser l’état des services via une interface graphique.
Cependant, pour des opérations avancées comme activer ou désactiver des services au démarrage, systemctl reste la méthode la plus fiable.
Q6. Où placer les fichiers d’unité personnalisés ?
A6.
Les fichiers d’unité personnalisés sont généralement placés dans /etc/systemd/system/. Après avoir modifié ou ajouté un fichier d’unité, exécutez toujours la commande suivante :
sudo systemctl daemon-reload
Vous pouvez ensuite gérer le service normalement avec start ou enable.

