Aller au contenu
Administration Linux medium

Comprendre les processus Linux

9 min de lecture

Un processus est un programme en cours d’exécution. Chaque commande que vous lancez crée un processus identifié par un numéro unique appelé PID. Savoir lister et observer les processus est indispensable pour comprendre ce qui tourne sur votre système.

  • Ce qu’est un processus et un PID
  • Lister les processus avec ps et ps aux
  • Lire les informations de top
  • Lancer un processus en arrière-plan avec &
  • Basculer entre premier et arrière-plan : Ctrl+Z, fg, bg, jobs

Quand vous tapez une commande, le système crée un processus pour l’exécuter. Ce processus :

  • possède un PID (Process ID) : un numéro unique,
  • a un processus parent (PPID) identifié par son propre PID,
  • appartient à un utilisateur,
  • consomme de la mémoire et du CPU.

Le tout premier processus du système est init (ou systemd sur les distributions modernes), avec le PID 1. Tous les autres processus en descendent.

Fenêtre de terminal
ps
Résultat
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
1256 pts/0 00:00:00 ps

Cette sortie montre uniquement les processus de votre terminal courant.

Fenêtre de terminal
ps aux
Résultat (extrait)
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169624 13412 ? Ss 08:00 0:01 /sbin/init
root 412 0.0 0.1 32120 8744 ? Ss 08:00 0:00 /usr/sbin/sshd
bob 1234 0.0 0.0 8536 5200 pts/0 Ss 09:15 0:00 -bash
bob 1300 0.5 1.2 245680 98200 pts/0 S+ 10:00 0:03 python3 script.py

Chaque colonne a une signification :

ColonneSignification
USERPropriétaire du processus
PIDIdentifiant unique du processus
%CPUPourcentage d’utilisation du processeur
%MEMPourcentage d’utilisation de la mémoire
VSZMémoire virtuelle allouée (en Ko)
RSSMémoire réellement utilisée (en Ko)
TTYTerminal associé (? = pas de terminal)
STATÉtat du processus
STARTHeure de démarrage
TIMETemps CPU consommé
COMMANDCommande qui a lancé le processus

Pour chercher un processus précis :

Fenêtre de terminal
ps aux | grep sshd
Résultat
root 412 0.0 0.1 32120 8744 ? Ss 08:00 0:00 /usr/sbin/sshd
bob 1350 0.0 0.0 6420 720 pts/0 S+ 10:05 0:00 grep sshd
LettreSignification
SEn sommeil (attend un événement)
REn cours d’exécution
TArrêté (suspendu)
ZZombie (terminé mais pas nettoyé par le parent)
s (minuscule)Leader de session
+En premier plan du terminal

top affiche les processus en temps réel, actualisé toutes les quelques secondes :

Fenêtre de terminal
top
Résultat (en-tête)
top - 10:30:00 up 2:30, 1 user, load average: 0.15, 0.10, 0.05
Tasks: 142 total, 1 running, 141 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.3 us, 1.0 sy, 0.0 ni, 96.5 id, 0.2 wa, 0.0 hi, 0.0 si
MiB Mem : 7953.4 total, 5120.2 free, 1580.6 used, 1252.6 buff/cache

Les informations essentielles en haut :

ChampSignification
up 2:30Le système fonctionne depuis 2h30
load averageCharge moyenne (1 min, 5 min, 15 min)
TasksNombre total de processus et leurs états
%CpuRépartition de l’utilisation CPU
MiB MemUtilisation de la mémoire

Raccourcis dans top :

ToucheAction
qQuitter
MTrier par mémoire
PTrier par CPU
kEnvoyer un signal (tuer un processus)
hAide

Par défaut, une commande s’exécute en premier plan : elle bloque le terminal jusqu’à ce qu’elle se termine.

Ajoutez & à la fin de la commande :

Fenêtre de terminal
sleep 60 &
Résultat
[1] 1400

Le terminal vous rend la main. [1] est le numéro du job et 1400 est le PID.

Fenêtre de terminal
jobs
Résultat
[1]+ En cours d'exécution sleep 60 &

Si un processus tourne en premier plan et que vous voulez reprendre la main sans l’arrêter :

  1. Appuyez sur Ctrl+Z : le processus est suspendu (état T)

    [1]+ Stoppé sleep 60
  2. Pour le reprendre en arrière-plan :

    Fenêtre de terminal
    bg
  3. Pour le remettre en premier plan :

    Fenêtre de terminal
    fg
CommandeAction
commande &Lance en arrière-plan
Ctrl+ZSuspend le processus en premier plan
jobsListe les jobs du terminal
fgRemet le dernier job en premier plan
fg %2Remet le job numéro 2 en premier plan
bgRelance le dernier job suspendu en arrière-plan
SymptômeCause probableSolution
ps aux affiche des centaines de lignesComportement normal sur un système actifFiltrer avec ps aux | grep nom
Un processus zombie (état Z)Le processus parent n’a pas récupéré le code de sortieGénéralement inoffensif ; redémarrer le service parent si persistant
top consomme beaucoup de CPUIntervalle de rafraîchissement trop courtAppuyer sur d dans top et choisir un intervalle plus long
fg : pas de job en coursAucun processus suspenduVérifier avec jobs
Le terminal ne répond plusUn processus bloque en premier planEssayer Ctrl+C, puis Ctrl+Z si Ctrl+C ne fonctionne pas
  • Un processus est un programme en cours d’exécution, identifié par un PID.
  • ps aux liste tous les processus, top les affiche en temps réel.
  • & lance en arrière-plan, Ctrl+Z suspend, fg/bg basculent.
  • jobs montre les tâches du terminal courant.
  • Le processus PID 1 (init/systemd) est l’ancêtre de tous les autres.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn