Observer les processus
Observer les processus, les PID et la consommation de ressources.
Objectifs
À la fin de cette leçon, vous saurez :
- lister les processus et identifier un PID ;
- lire la consommation du CPU et de la mémoire ;
- arrêter un processus proprement ou de force ;
- utiliser
toppour surveiller le système.
🔗 Pour vous rafraîchir la mémoire : lecture de fichiers et aide (cat, grep, man) · redirections et pipes
Qu'est-ce qu'un processus ?
Un processus est une instance en cours d'exécution d'un programme : le code chargé en mémoire, en train de tourner. C'est la forme vivante et partagée, différente du fichier sur disque.
Lister les processus
ps
ps affiche une liste courte : les processus du terminal courant, avec leur identifiant (PID, « process ID ») et la commande qui les a lancés.
Pour voir toute la machine :
ps aux
Les colonnes importantes :
USER PID %CPU %MEM COMMAND
cours 1234 0.3 2.1 node server.js
- USER : le compte qui a lancé le processus ;
- PID : l'identifiant numérique unique du processus ;
- %CPU : la part du processeur consommée ;
- %MEM : la part de mémoire vive occupée ;
- COMMAND : la commande qui l'a lancé.
Surveiller en continu
top
top rafraîchit l'écran toutes les quelques secondes : on voit la charge du CPU, la mémoire totale, et les processus qui consomment le plus, triés par défaut par activité. Q quitte.
On peut aussi préciser l'utilisateur :
top -u cours
top reste sobre ; si vous voulez une version plus lisible, htop propose la même information avec barres colorées, défilement et touches de gestion directes (F9 pour tuer). Il n'est pas toujours installé par défaut (sudo apt install htop sur Debian/Ubuntu), mais c'est l'outil que vous croiserez dans la plupart des tutoriels d'administration. Tout ce que vous savez faire avec top — lire PID, CPU, mémoire, trier — se transpose directement.
Le PID a le rôle clé
Un PID est unique à un instant donné. Un processus mort libère son numéro : un nouveau processus peut réutiliser le même PID plus tard.
Trouver le PID d'un processus précis :
pgrep node
pgrep répond par le ou les PID des processus dont le nom correspond — pratique avant d'arrêter.
Tuer un processus
Proprement
kill 1234
kill (avec l'identifiant) envoie un signal de fin normal : le processus peut alors se terminer proprement.
De force
kill -9 1234
Le signal -9 est brutal : le processus n'a pas le temps de se nettoyer. Utilisez-le seulement si le signal normal n'a rien donné.
Tous d'un coup
killall node
killall arrête tous les processus liés au nom donné. À manier avec soin.
Tester sur une boucle
sleep 3600 &
sleep 3600 &
ps aux | grep sleep
killall sleep
Le & à la fin lance la commande en arrière-plan : elle ne bloque pas le terminal. Ensuite ps | grep sleep trouve le PID, et killall sleep arrête les deux.
Exercice
- Démarrez
sleep 300en arrière-plan, retrouvez son PID avecpgrep. - Affichez ses informations dans
ps aux(grep sur le nom). - Arrêtez-le proprement avec
kill, puis vérifiez qu'il a disparu. - Lancez 3 fois
sleep 60 &, puis utilisezkillallpour tout stopper. - Ouvrez
topet notez : nombre de processus, charge CPU la plus élevée, mémoire utilisée totale.
Résumé
psliste,topsurveille en continu.- Un PID identifie un processus du moment.
killenvoie des signaux : normal d'abord,-9en force.killallvise par nom ;pgrepest le détecteur de PID.
Correction disponibleCherchez d’abord par vous-même.Voir la correction
Correction
Réponses détaillées
Exercice 1 et 2.
sleep 300 &
pgrep sleep
ps aux | grep sleep
pgrep répond un nombre : c'est le PID attendu. Dans ps aux | grep sleep, une ligne supplémentaire correspond au grep lui-même : le filtre se retrouve aussi dans la liste, c'est normal.
Exercice 3.
kill PID
pgrep sleep # réponse vide : le processus n'existe plus
La seconde est vide : vérifier la disparition fait partie de la vérification de l'arrêt.
Exercice 4.
sleep 60 & sleep 60 & sleep 60 &
killall sleep
Attention : trois processus distincts, trois PID. killall les arrête en un passage.
Exercice 5. Un système Linux classique contient plusieurs dizaines de processus : n'oubliez pas que chaque processus consomme de la mémoire, même au repos. Une charge CPU élevée signale une activité réelle ; sur une machine au repos, elle reste basse même si les processus sont nombreux.