Comment lister les services en cours d'exécution sur Linux : Un guide complet pour tous les systèmes init

2025-02-12 · Mis à jour 2026-07-06

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) :
    systemctl list-units --type=service --state=running
    
    Ou, pour lister chaque unité de service quel que soit son état :
    systemctl --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=running pour lister les services actifs.
  • Utilisez systemctl list-units --type=service pour voir l'ensemble des services.
  • Utilisez systemctl list-unit-files --type=service pour 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 systemctl ou service.
  • 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 commande grep elle-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 aux pour lister tous les processus en cours d'exécution.
  • Utilisez ps aux | grep <nom-du-service> pour rechercher un service précis.
  • Utilisez ps fax pour obtenir une vue arborescente des processus.
  • Utilisez netstat -tulnp ou ss -tulnp pour repérer les services qui écoutent sur des ports précis.
Comment lister les services en cours d'exécution sur Linux

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) :
    htop
    
    (Installez-le avec sudo apt install htop ou sudo yum install htop s'il n'est pas disponible.)