- 1 1. Introduction
- 2 2. Comment lister les services avec systemctl
- 3 3. Gestion de base des services avec systemctl
- 4 4. Options utiles et techniques avancées pour systemctl
- 5 5. Problèmes courants et solutions
- 6 6. Résumé
- 7 7. Questions fréquemment posées (FAQ)
- 7.1 Q1. Quelle est la différence entre les commandes systemctl et service ?
- 7.2 Q2. Quelle est la différence entre list-units et list-unit-files ?
- 7.3 Q3. Puis‑je démarrer un service en état “static” ?
- 7.4 Q4. Je ne peux pas démarrer un service masqué. Que faire ?
- 7.5 Q5. Existe‑t‑il une interface graphique pour lister l’état des services ?
- 7.6 Q6. Où faut‑il placer les fichiers d’unité personnalisés ?
1. Introduction
Lorsque vous utilisez Linux, il existe de nombreuses situations où vous pourriez vouloir vérifier l’état des services ou lister tous les processus en cours d’exécution. Dans de tels cas, la commande systemctl est extrêmement utile.
Cette commande interagit avec « systemd », le système d’initialisation et le gestionnaire de services sur Linux, offrant un large éventail de fonctionnalités telles que la vérification de l’état des services (unités), le démarrage, l’arrêt, le redémarrage et la liste des services.
En particulier lorsqu’il s’agit de « lister avec systemctl », vous pouvez comprendre la structure de votre système sous différents angles — pas seulement les services actuellement actifs, mais aussi ceux inactifs ou les services configurés pour démarrer automatiquement.
Cette section présentera brièvement les bases de ce qu’est « systemctl », et expliquera ce que vous apprendrez dans cet article.
What is systemctl?
systemctl est l’outil standard pour contrôler et vérifier diverses « unités » telles que les services, les cibles et les points de montage sur les distributions Linux basées sur systemd.
Par exemple, vous l’utilisez pour démarrer ou arrêter des services comme Apache (httpd) ou SSH, ou pour lister l’état de ces services.
Relationship Between systemd and systemctl
systemd est le système central pour les processus de démarrage et la gestion des services sur Linux, remplaçant les anciens outils tels que SysVinit et Upstart. systemctl est l’utilitaire en ligne de commande qui interagit directement avec systemd.
En d’autres termes, si systemd est le « contrôleur », alors systemctl agit comme l’« opérateur » qui envoie les instructions.
What You Will Learn in This Article
Cet article répond aux questions courantes suivantes :
- Comment puis-je lister tous les services actuellement en cours d’exécution ?
- Comment inclure les services inactifs dans la liste?
- Comment vérifier quels services sont activés pour démarrer automatiquement?
- Comment puis-je lire et interpréter les résultats?
Chaque exemple de commande et sa sortie sont soigneusement expliqués pour les débutants, n’hésitez donc pas à suivre jusqu’à la fin.
2. Comment lister les services avec systemctl
En administration système Linux, saisir rapidement la liste des services est essentiel. Avec la commande systemctl, vous pouvez facilement voir non seulement les services actifs, mais aussi les inactifs et ceux configurés pour démarrer automatiquement.
Ici, nous expliquerons trois points de vue principaux pour lister les services :
- Liste des services actifs
- Liste de tous les services (y compris les services inactifs)
- Liste des fichiers d’unité de service (y compris les paramètres de démarrage)
2.1 Lister les services actuellement actifs
Pour vérifier quels services sont « en cours d’exécution » sur votre système, utilisez cette commande de base :
systemctl list-units --type=serviceCette commande affiche une liste des services actuellement actifs (en cours d’exécution). La sortie comprend les colonnes suivantes :
Colonne | Description |
|---|---|
UNITÉ | Nom du service (par ex. ssh.service) |
Charger | Si le fichier d’unité est chargé |
ACTIF | Statut du service (ex. actif, inactif, échoué) |
SUB | Statut détaillé (ex. en cours, terminé, mort) |
DESCRIPTION | Brève description du service |
Ces informations vous aident à comprendre, par exemple, si nginx est actuellement en cours d’exécution ou quels services sont actifs.
2.2 Lister tous les services, y compris les inactifs
Par défaut, list-units n’affiche que services actuellement actifs. Pour inclure les services inactifs, ajoutez l’option --all :
systemctl list-units --type=service --allCette option vous permet de voir les services en état « inactif » ou ceux qui n’ont jamais été démarrés auparavant.
Si vous souhaitez affiner davantage les résultats, utilisez l’option --state= pour filtrer par statut spécifique :
systemctl list-units --type=service --state=inactiveCeci est utile lorsque vous voulez vérifier uniquement les services arrêtés, par exemple.
2.3 Lister les fichiers d’unités de service
Si vous voulez connaître non seulement le statut actuel mais aussi quels services sont activés et configurés pour démarrer automatiquement, utilisez la commande suivante :
systemctl list-unit-files --type=serviceCela affiche une liste des fichiers d’unités de service (fichiers de configuration) et vous permet de vérifier leur statut d’activation/désactivation (activé, désactivé, etc.).
Valeur d’État | Description |
|---|---|
activé | Activé automatiquement au démarrage |
désactivé | Non activé au démarrage ; doit être démarré manuellement |
static | Démarré en tant que dépendance d’autres unités ; ne peut pas être activé/désactivé directement. |
Je suis désolé, mais je ne vois pas le fragment HTML que vous souhaitez traduire. Pourriez‑vous me le fournir ? | Explicitement désactivé et ne peut pas être démarré (protégé) |
Examiner cette liste vous aide à comprendre visuellement quels services démarrent au démarrage et si certains ont été masqués accidentellement.
3. Gestion de base des services avec systemctl
La commande systemctl ne se contente pas de vérifier l’état du service, elle vous permet également de démarrer, arrêter, redémarrer, et d’activer ou désactiver les services. Voici les opérations de basequemment utilisées dans la gestion des systèmes Linux.
Maîtriser ces commandes est essentiel pour la gestion quotidienne des serveurs et le dépannage.
3.1 Démarrage d’un service
Pour démarrer manuellement un service spécifique, utilisez la sous‑commande start :
sudo systemctl start [service name]Par exemple, pour démarrer Apache (httpd) :
sudo systemctl start httpd.serviceCela démarre le service immédiatement. Si vous souhaitez qu’il persiste après le redémarrage, utilisez également enable (expliqué ci‑dessous).
3.2 Arrêt d’un service
Pour arrêter un service, utilisez cette commande :
sudo systemctl stop [service name]Exemple :
sudo systemctl stop sshd.serviceLe service reste arrêté jusqu’à ce que vous le redémarriez explicitement.
3.3 Redémarrage d’un service
Pour redémarrer un service (par exemple, après des modifications de configuration), utilisez :
sudo systemctl restart [service name]Exemple :
sudo systemctl restart nginx.serviceLe redémarrage arrête toujours le service puis le relance, quel que soit son état actuel.
3.4 Vérification de l’état du service
Pour vérifier l’état détaillé d’un service, utilisez la sous‑commande status :
systemctl status [service name]Exemple :
systemctl status mysql.serviceCela affiche l’état actif actuel, l’identifiant du processus (PID), un résumé des journaux, et plus encore — très utile pour le dépannage.
3.5 Activation d’un service au démarrage automatique
Pour garantir qu’un service démarre automatiquement au démarrage, utilisez la sous‑commande enable :
sudo systemctl enable [service name]Exemple :
sudo systemctl enable docker.serviceDésormais, le service se lancera automatiquement au prochain démarrage du système.
3.6 Désactivation d’un service au démarrage automatique
Pour désactiver le démarrage automatique, utilisez la commande disable :
sudo systemctl disable [service name]Exemple :
sudo systemctl disable cups.serviceCela empêche le service de démarrer au démarrage.
3.7 Vérification de l’activation d’un service
Pour vérifier si un service est activé (démarre automatiquement), utilisez is-enabled :
systemctl is-enabled [service name]Exemple de sortie :
enabledCela indique rapidement la politique de démarrage du service.
4. Options utiles et techniques avancées pour systemctl
La commande systemctl ne se limite pas aux opérations de démarrage/arrêt de base, elle prend également en charge des tâches de gestion avancées. Voici quelques options pratiques et techniques que vous devriez connaître.
Exploiter ces fonctionnalités peut grandement améliorer l’efficacité de la gestion des services Linux.
4.1 Liste des dépendances de service
Sous Linux, certains services dépendent d’autres unités (services, montages, cibles, etc.). Pour vérifier les dépendances, utilisez list-dependencies :
systemctl list-dependencies [service name]Exemple :
systemctl list-dependencies nginx.serviceCette commande affiche les unités liées sous forme d’arborescence—utile pour analyser l’ordre de démarrage et les dépendances indirectes.
4.2 Affichage du contenu du fichier d’unité
Si vous souhaitez vérifier les détails de la configuration d’une unité, vous pouvez afficher le fichier d’unité réel :
systemctl cat [service name]Exemple :
systemctl cat ssh.serviceCela montre le chemin du fichier et son contenu, vous permettant de voir rapidement les éventuels paramètres personnalisés.
4.3 Rechargement des fichiers d’unité
Si vous modifiez manuellement un fichier d’unité, utilisez daemon-reload pour appliquer les changements :
sudo systemctl daemon-reexecOu, plus couramment :
sudo systemctl daemon-reloadCela recharge les fichiers d’unité dans systemd, de sorte que les modifications prennent effet. Si les paramètres ne semblent pas s’appliquer, essayez d’abord cette commande.
4.4 Vérification des journaux de service (Supplément)
Bien que ce ne soit pas une commande systemctl en soi, journalctl est utile pour consulter les journaux de service :
journalctl -u [service name]Exemple :
journalctl -u docker.serviceCela vous permet d’examiner les erreurs de démarrage et l’historique des redémarrages—une étape essentielle de dépannage.
5. Problèmes courants et solutions
Lors de la gestion des services avec systemctl, les choses ne se passent pas toujours comme prévu. Cette section explique les problèmes courants et comment les résoudre.
Soyez prêt à « le service ne démarre pas » ou « impossible de trouver la cause » en connaissant ces étapes de dépannage de base.
5.1 Dépannage lorsqu’un service ne démarre pas
Vous pouvez voir des erreurs telles que :
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.Pour identifier la cause, suivez les étapes suivantes dans l’ordre :
- Vérifier le statut
systemctl status [service name]- Vérifiez les journaux d’erreurs
journalctl -xe- Recharger les fichiers d’unité
Si vous venez d’éditer un fichier d’unité, rechargez avec:
sudo systemctl daemon-reload- Vérifier les conflits de port
Vérifiez si un autre processus utilise déjà le port:
sudo netstat -tulnp | grep [port number]5.2 Comment lire les messages d’erreur dans la commande status
Lorsque vous exécutez systemctl status, vous voyez l’état du service ainsi que les messages de journal les plus récents. Par exemple :
● 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) since Fri 2025-04-18 12:00:00 JST; 5s ago
Process: 12345 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)Cela vous permet de repérer rapidement les échecs (par ex., « Active: failed », « status=1/FAILURE ») et quel processus a renvoyé une erreur.
La ligne Loaded indique le chemin du fichier d’unité, ce qui facilite l’identification du fichier de configuration à modifier.
5.3 Lorsque les services s’arrêtent de façon inattendue
Si un service démarre puis s’arrête immédiatement, les causes courantes incluent :
- Erreurs dans les fichiers de configuration
- Conflits de ports
- Fichiers ou répertoires requis manquants
- Permissions d’exécution insuffisantes
Pour résoudre, essayez ce qui suit :
- Vérifiez et validez les fichiers de configuration (par exemple,
nginx -touapachectl configtest) - Suivez les journaux détaillés avec
journalctl -u [service name] - Assurez-vous que les répertoires requis (par ex.,
/var/run/xxx) existent ; créez-les si nécessaire
5.4 Impossible de démarrer les services en état masked
Si vous voyez cette erreur :
Failed to start example.service: Unit example.service is masked.Le service est en état masked (complètement désactivé et bloqué pour le démarrage). Démasquez avec :
sudo systemctl unmask [service name]Vous pouvez alors démarrer le service comme d’habitude.
6. Résumé
La gestion des services sous Linux est une partie essentielle des opérations quotidiennes du système. La commande systemctl joue un rôle central, vous permettant de consulter les listes de services et de les gérer efficacement.
Cet article a expliqué les points suivants en utilisant le mot‑clé « systemctl list » :
Ce que vous pouvez faire avec la commande systemctl (Récapitulatif)
- Liste de contrôle des services
- Afficher les services actuellement actifs (
list-units --type=service) - Listez tous les services, y compris les services inactifs (options
--allou--state=) - Afficher les fichiers d’unité de service et leur état de démarrage (
list-unit-files) - Opérations de base du service
- Démarrer, arrêter, redémarrer et vérifier l’état (start / stop / restart / status)
- Activer/désactiver le démarrage automatique (activer / désactiver / est activé)
- Opérations avancées et dépannage
- Vérifier les dépendances, afficher les fichiers unit, recharger les configurations
- Investiguer les erreurs en utilisant les journaux et les vérifications d’état
Bonnes pratiques pour la gestion des services
- Vérifiez toujours le statut avant d’apporter des modifications (
statuscommande) - Connaître l’état de démarrage automatique (
is-enabledcommande) - Après avoir effectué des modifications, exécutez toujours
daemon-reload - Pour les problèmes, vérifiez les journaux avec
journalctl
Des vérifications minutieuses comme celles‑ci garantissent une prestation de services stable et un dépannage plus rapide dans l’administration système sous Linux.
Pour aller plus loin
Si vous souhaitez en savoir plus, envisagez d’explorer des sujets tels que :
- cibles systemd (et différences par rapport aux niveaux d’exécution)
- Tâches planifiées avec
systemd-timer - Comment créer et gérer des fichiers d’unités personnalisés
7. Questions fréquemment posées (FAQ)
Cette section résume les questions fréquemment posées et leurs réponses concernant la commande systemctl et la liste des services. Même si vous maîtrisez les bases, consultez‑les pour une référence rapide.
Q1. Quelle est la différence entre les commandes systemctl et service ?
A1.
systemctl
Q2. Quelle est la différence entre list-units et list-unit-files ?
A2.
list-unitsaffiche unités actuellement chargées (actives ou précédemment utilisées).list-unit-filesénumère tous les fichiers d’unité et leur état d’activation/désactivation.
Considérez cela comme la différence entre « ce qui fonctionne maintenant » et « ce qui est configuré pour fonctionner ».
Q3. Puis‑je démarrer un service en état “static” ?
A3.
Oui, vous pouvez manuellement start un service en état static, mais vous ne pouvez pas enable le faire démarrer automatiquement. En effet, les services statiques sont conçus pour être démarrés en tant que dépendances d’autres unités.
Q4. Je ne peux pas démarrer un service masqué. Que faire ?
A4.
masked signifie “completely disabled.” Démasquez avec:
sudo systemctl unmask [service name]Après cela, vous pouvez le démarrer normalement.
Q5. Existe‑t‑il une interface graphique pour lister l’état des services ?
A5.
Selon votre distribution, des outils comme gnome-system-monitor, KSysGuard ou Cockpit peuvent vous permettre de vérifier l’état des services via une interface graphique. Cependant, pour les opérations avancées, systemctl reste la méthode la plus fiable.
Q6. Où faut‑il placer les fichiers d’unité personnalisés ?
A6.
En général, placez‑les dans /etc/systemd/system/. Après modification, n’oubliez pas d’exécuter:
sudo systemctl daemon-reloadPuis gérez‑les comme d’habitude avec start ou enable.


