Comment lister les services en cours d'exécution sur Linux : Un guide complet pour tous les systèmes init
Réponse rapide : comment lister les services en cours d'exécution sur Linux
Pour lister les services en cours d'exécution sur Linux, utilisez l'une de ces commandes selon votre système init :
- systemd (Ubuntu 24.04, Debian 12, CentOS/RHEL 9, Fedora 40+ et la plupart des distributions modernes en 2026) :
Ou, pour lister chaque unité de service quel que soit son état :systemctl list-units --type=service --state=runningsystemctl --type=service - SysVinit / systèmes plus anciens (ou pour inclure les scripts init hérités) :
service --status-all
systemd est aujourd'hui le système init par défaut sur pratiquement toutes les distributions Linux grand public ; systemctl list-units --type=service --state=running constitue donc la réponse dans la grande majorité des cas. Cette commande affiche un tableau des services actuellement actifs, avec leurs états LOAD, ACTIVE et SUB. Si systemctl est introuvable, c'est que votre système n'utilise pas systemd — repliez-vous alors sur service --status-all (SysVinit) ou rc-status (OpenRC).
Le reste de ce guide détaille chaque méthode, notamment le filtrage par état, la vérification des services lancés au démarrage et la recherche de services par port.
Introduction
Les services Linux sont des processus d'arrière-plan qui s'exécutent en continu pour accomplir des tâches système : gestion du réseau, prise en charge des connexions utilisateur, exécution de serveurs web, etc. Ils se gèrent à l'aide de différents outils, selon la distribution Linux et le système init utilisés. En 2026, systemd est le système init standard sur la quasi-totalité des grandes distributions ; c'est pourquoi l'essentiel de ce guide porte sur la commande systemctl.
Savoir lister les services actifs est indispensable aux administrateurs système comme aux développeurs. Cela permet de :
- Dépanner des problèmes – vérifier qu'un service critique fonctionne bien ou repérer qu'il a échoué.
- Surveiller les performances – identifier les services gourmands en ressources.
- Auditer la sécurité – s'assurer que seuls les services nécessaires sont actifs.
Utilisation de systemctl (pour les systèmes basés sur systemd)
La plupart des distributions Linux récentes utilisent systemd comme système init. C'est le cas des versions en vigueur en 2026, comme Ubuntu (de la 16.04 à la 24.04 LTS et au-delà), Debian (de la 8 à la 12 « Bookworm » et au-delà), Fedora (40 et plus), CentOS Stream / RHEL / Rocky Linux / AlmaLinux (de la 7 à la 9 et au-delà) et openSUSE. La commande systemctl est l'outil principal pour gérer et lister les services sur tous ces systèmes.
Vérifier l'état d'un service donné
Pour vérifier si un service précis est actif, utilisez :
systemctl status <nom-du-service>
Par exemple, pour vérifier si le serveur web nginx est actif :
systemctl status nginx
La sortie indique si le service est actif (en cours d'exécution), inactif ou en échec, et fournit des journaux utiles au débogage.
Lister tous les services actifs
Pour lister tous les services en cours d'exécution, utilisez :
systemctl list-units --type=service --state=running
Cette commande affiche un tableau de tous les services actuellement actifs, accompagnés de leur état.
Lister tous les services (y compris les services inactifs)
Si vous souhaitez voir l'ensemble des services, qu'ils soient actifs ou non :
systemctl list-units --type=service
Cela inclut les services actifs, inactifs, en échec ou dans d'autres états.
Filtrer les services par état
Vous pouvez filtrer les services selon leur état avec :
systemctl list-units --type=service --state=failed
Cette commande ne liste que les services en échec, ce qui peut s'avérer utile pour le dépannage.
Lister les services lancés au démarrage
Pour savoir quels services sont configurés pour démarrer automatiquement au démarrage :
systemctl list-unit-files --type=service | grep enabled
Exemple de sortie
Une sortie typique de systemctl list-units --type=service --state=running pourrait ressembler à ceci :
UNIT LOAD ACTIVE SUB DESCRIPTION
cron.service loaded active running Regular background program processing daemon
networking.service loaded active running Raise network interfaces
ssh.service loaded active running OpenBSD Secure Shell server
systemd-logind.service loaded active running Login Service
Résumé
- Utilisez
systemctl status <service>pour vérifier l'état d'un service donné. - Utilisez
systemctl list-units --type=service --state=runningpour lister les services actifs. - Utilisez
systemctl list-units --type=servicepour voir l'ensemble des services. - Utilisez
systemctl list-unit-files --type=servicepour voir les services lancés au démarrage.
Utilisation de ps et grep pour les processus en cours d'exécution
Si vous souhaitez lister les services actifs sans passer par systemctl ni par d'autres outils de gestion de services, vous pouvez recourir à ps (process status) conjointement à grep pour retrouver des processus précis.
Cette méthode est utile lorsque :
- Vous travaillez sur un système Linux minimal, dépourvu des commandes
systemctlouservice. - Vous voulez vérifier qu'un processus donné s'exécute, quel que soit le système init.
Lister tous les processus en cours d'exécution
La commande ps aux affiche tous les processus en cours d'exécution sur le système :
ps aux
Elle produit une liste exhaustive de tous les processus actifs, avec leurs identifiants de processus (PID), leur utilisation du CPU et de la mémoire, ainsi que le nom des commandes.
Rechercher un service précis
Pour vérifier si un service particulier s'exécute, utilisez ps aux | grep <nom-du-service> :
ps aux | grep nginx
La commande affiche les lignes contenant « nginx », ce qui indique s'il tourne. La sortie peut ressembler à ceci :
root 1034 0.0 0.3 49536 3412 ? Ss 12:34 0:00 nginx: master process /usr/sbin/nginx
www-data 1035 0.0 0.2 49536 2824 ? S 12:34 0:00 nginx: worker process
user 2045 0.0 0.0 14856 900 pts/0 S+ 12:35 0:00 grep --color=auto nginx
Ici :
- Les deux premières lignes indiquent que le service nginx est actif.
- La dernière ligne (
grep --color=auto nginx) correspond à la commandegrepelle-même. Vous pouvez l'exclure ainsi :
ps aux | grep nginx | grep -v grep
Afficher les processus sous forme hiérarchique
Pour une vue plus structurée, utilisez :
ps fax
Cette commande présente les processus en cours d'exécution sous forme d'arborescence, ce qui facilite l'identification des services actifs et de leurs processus enfants.
Trouver des services par port
Si vous soupçonnez qu'un service utilise un port précis sans en connaître le nom, utilisez :
netstat -tulnp | grep :80
ou, si netstat n'est pas disponible :
ss -tulnp | grep :80
Cette commande liste le processus qui occupe le port 80 (couramment utilisé par des serveurs web comme Nginx ou Apache).
Résumé
- Utilisez
ps auxpour lister tous les processus en cours d'exécution. - Utilisez
ps aux | grep <nom-du-service>pour rechercher un service précis. - Utilisez
ps faxpour obtenir une vue arborescente des processus. - Utilisez
netstat -tulnpouss -tulnppour repérer les services qui écoutent sur des ports précis.
FAQ (Questions fréquemment posées)
1. Comment vérifier si un service est actif sur Linux ?
Vous pouvez employer différentes méthodes selon votre distribution Linux :
- Pour les systèmes basés sur systemd :
systemctl status <nom-du-service> - Pour les systèmes basés sur SysVinit :
service <nom-du-service> status - En utilisant ps et grep :
ps aux | grep <nom-du-service>
2. Comment lister tous les services en cours d'exécution ?
- Pour les systèmes basés sur systemd :
systemctl list-units --type=service --state=running - Pour les systèmes basés sur SysVinit :
service --status-all - En utilisant la commande
ps:ps aux
3. Comment savoir si un service se lance au démarrage ?
- Pour systemd :
systemctl is-enabled <nom-du-service> - Pour SysVinit (systèmes basés sur RHEL) :
chkconfig --list <nom-du-service>
4. Comment redémarrer un service ?
- Pour les systèmes basés sur systemd :
sudo systemctl restart <nom-du-service> - Pour les systèmes basés sur SysVinit :
sudo service <nom-du-service> restart
5. Comment arrêter ou désactiver un service ?
- Pour arrêter temporairement un service :
sudo systemctl stop <nom-du-service> - Pour empêcher un service de se lancer au démarrage :
sudo systemctl disable <nom-du-service>
6. Comment savoir quel service utilise un port donné ?
Vous pouvez utiliser netstat ou ss pour repérer les services qui écoutent sur un port donné :
netstat -tulnp | grep :80
ou
ss -tulnp | grep :80
7. Que faire si systemctl est introuvable ?
Si vous obtenez une erreur du type command not found: systemctl, c'est probablement que votre système n'utilise pas systemd. Essayez alors :
service --status-all
ou
ps aux | grep <nom-du-service>
8. Comment lister les services en échec ?
Sur les systèmes basés sur systemd, exécutez :
systemctl list-units --type=service --state=failed
9. Comment consulter la journalisation d'un service donné ?
Pour consulter les journaux d'un service géré par systemd, utilisez :
journalctl -u <nom-du-service>
Pour suivre les journaux en temps réel :
journalctl -u <nom-du-service> -f
10. Puis-je utiliser top ou htop pour voir les services en cours d'exécution ?
Oui ! top et htop offrent une vue en direct des processus en cours d'exécution :
- Utilisez
top:top - Utilisez
htop(interactif et convivial) :
(Installez-le avechtopsudo apt install htopousudo yum install htops'il n'est pas disponible.)
