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 que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Ce qu’est un processus et un PID
- Lister les processus avec
psetps 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
Qu’est-ce qu’un processus
Section intitulée « Qu’est-ce qu’un processus »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.
Lister les processus avec ps
Section intitulée « Lister les processus avec ps »Vos processus
Section intitulée « Vos processus »ps PID TTY TIME CMD 1234 pts/0 00:00:00 bash 1256 pts/0 00:00:00 psCette sortie montre uniquement les processus de votre terminal courant.
Tous les processus du système
Section intitulée « Tous les processus du système »ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.1 169624 13412 ? Ss 08:00 0:01 /sbin/initroot 412 0.0 0.1 32120 8744 ? Ss 08:00 0:00 /usr/sbin/sshdbob 1234 0.0 0.0 8536 5200 pts/0 Ss 09:15 0:00 -bashbob 1300 0.5 1.2 245680 98200 pts/0 S+ 10:00 0:03 python3 script.pyChaque colonne a une signification :
| Colonne | Signification |
|---|---|
USER | Propriétaire du processus |
PID | Identifiant unique du processus |
%CPU | Pourcentage d’utilisation du processeur |
%MEM | Pourcentage d’utilisation de la mémoire |
VSZ | Mémoire virtuelle allouée (en Ko) |
RSS | Mémoire réellement utilisée (en Ko) |
TTY | Terminal associé (? = pas de terminal) |
STAT | État du processus |
START | Heure de démarrage |
TIME | Temps CPU consommé |
COMMAND | Commande qui a lancé le processus |
Filtrer avec grep
Section intitulée « Filtrer avec grep »Pour chercher un processus précis :
ps aux | grep sshdroot 412 0.0 0.1 32120 8744 ? Ss 08:00 0:00 /usr/sbin/sshdbob 1350 0.0 0.0 6420 720 pts/0 S+ 10:05 0:00 grep sshdLes états des processus (STAT)
Section intitulée « Les états des processus (STAT) »| Lettre | Signification |
|---|---|
S | En sommeil (attend un événement) |
R | En cours d’exécution |
T | Arrêté (suspendu) |
Z | Zombie (terminé mais pas nettoyé par le parent) |
s (minuscule) | Leader de session |
+ | En premier plan du terminal |
Observer avec top
Section intitulée « Observer avec top »top affiche les processus en temps réel, actualisé toutes les
quelques secondes :
toptop - 10:30:00 up 2:30, 1 user, load average: 0.15, 0.10, 0.05Tasks: 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 siMiB Mem : 7953.4 total, 5120.2 free, 1580.6 used, 1252.6 buff/cacheLes informations essentielles en haut :
| Champ | Signification |
|---|---|
up 2:30 | Le système fonctionne depuis 2h30 |
load average | Charge moyenne (1 min, 5 min, 15 min) |
Tasks | Nombre total de processus et leurs états |
%Cpu | Répartition de l’utilisation CPU |
MiB Mem | Utilisation de la mémoire |
Raccourcis dans top :
| Touche | Action |
|---|---|
q | Quitter |
M | Trier par mémoire |
P | Trier par CPU |
k | Envoyer un signal (tuer un processus) |
h | Aide |
Premier plan et arrière-plan
Section intitulée « Premier plan et arrière-plan »Par défaut, une commande s’exécute en premier plan : elle bloque le terminal jusqu’à ce qu’elle se termine.
Lancer en arrière-plan avec &
Section intitulée « Lancer en arrière-plan avec & »Ajoutez & à la fin de la commande :
sleep 60 &[1] 1400Le terminal vous rend la main. [1] est le numéro du job et 1400 est
le PID.
Voir les jobs en cours
Section intitulée « Voir les jobs en cours »jobs[1]+ En cours d'exécution sleep 60 &Suspendre un processus avec Ctrl+Z
Section intitulée « Suspendre un processus avec Ctrl+Z »Si un processus tourne en premier plan et que vous voulez reprendre la main sans l’arrêter :
-
Appuyez sur Ctrl+Z : le processus est suspendu (état
T)[1]+ Stoppé sleep 60 -
Pour le reprendre en arrière-plan :
Fenêtre de terminal bg -
Pour le remettre en premier plan :
Fenêtre de terminal fg
Récapitulatif des commandes de jobs
Section intitulée « Récapitulatif des commandes de jobs »| Commande | Action |
|---|---|
commande & | Lance en arrière-plan |
Ctrl+Z | Suspend le processus en premier plan |
jobs | Liste les jobs du terminal |
fg | Remet le dernier job en premier plan |
fg %2 | Remet le job numéro 2 en premier plan |
bg | Relance le dernier job suspendu en arrière-plan |
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
ps aux affiche des centaines de lignes | Comportement normal sur un système actif | Filtrer avec ps aux | grep nom |
Un processus zombie (état Z) | Le processus parent n’a pas récupéré le code de sortie | Généralement inoffensif ; redémarrer le service parent si persistant |
top consomme beaucoup de CPU | Intervalle de rafraîchissement trop court | Appuyer sur d dans top et choisir un intervalle plus long |
fg : pas de job en cours | Aucun processus suspendu | Vérifier avec jobs |
| Le terminal ne répond plus | Un processus bloque en premier plan | Essayer Ctrl+C, puis Ctrl+Z si Ctrl+C ne fonctionne pas |
À retenir
Section intitulée « À retenir »- Un processus est un programme en cours d’exécution, identifié par un PID.
ps auxliste tous les processus,toples affiche en temps réel.&lance en arrière-plan, Ctrl+Z suspend,fg/bgbasculent.jobsmontre les tâches du terminal courant.- Le processus PID 1 (
init/systemd) est l’ancêtre de tous les autres.