Maîtriser les processus Linux avec ps, pgrep, pkill, jobs, bg, fg et kill
Apprenez à repérer, suivre, gérer et arrêter proprement les processus Linux avec ps, pgrep, pkill, jobs, bg, fg et kill.

- Difficulté
- Facile
Pour gérer un processus Linux, il faut d'abord l'identifier avec ps ou pgrep, puis choisir l'action adaptée : le suivre, le basculer en arrière-plan ou l'arrêter proprement. Les commandes jobs, bg, fg, kill et pkill couvrent l'essentiel pour un usage débutant en ligne de commande.
Ce guide montre une méthode simple : trouver la bonne tâche, vérifier son contexte, tenter un arrêt normal, puis seulement forcer si la tâche ne répond pas. Les exemples restent centrés sur les commandes de base disponibles sur la plupart des systèmes Linux.
Prérequis
Ouvrez un terminal sur une session Linux. Les commandes jobs, bg et fg agissent sur les tâches lancées depuis le shell courant : elles ne pilotent pas un processus démarré dans une autre session.
Matériel nécessaire
- Un terminal Linux
- Un shell interactif comme Bash
Étapes
Lister les processus avec ps
Commencez par afficher les processus pour repérer un nom, un PID ou un état. La commande la plus lisible pour débuter est
ps aux, qui montre notamment l'utilisateur, le PID, l'utilisation CPU et la commande lancée.ps aux ps -efSi la liste est longue, filtrez visuellement avec un tube vers
grep. Cela aide à confirmer le nom exact avant d'utiliser une commande d'arrêt.ps aux | grep firefoxRechercher un PID avec pgrep
Utilisez pgrep quand vous connaissez déjà le nom du programme. La commande renvoie directement un ou plusieurs PID, ce qui évite de parcourir toute la sortie de
ps.pgrep bash pgrep -l ssh pgrep -a pythonL'option
-lajoute le nom du processus, et-aaffiche la ligne de commande complète. C'est utile quand plusieurs processus portent un nom proche.Suspendre une tâche lancée au premier plan

Si une commande tourne dans votre terminal et bloque la main, suspendez-la avec
Ctrl+Z. Le shell stoppe alors la tâche et vous rend le prompt.Cette action ne termine pas le programme. Elle le place dans la liste des jobs du shell courant, prêts à être repris.
Afficher les tâches du shell avec jobs
Après une suspension ou un lancement en arrière-plan, affichez les tâches suivies par votre shell avec jobs. Vous verrez un numéro de job, son état et la commande associée.
jobs jobs -lL'option
-lajoute le PID en plus du numéro de job. Ce détail est pratique pour relier le monde du shell à celui dekilletps.Relancer une tâche en arrière-plan avec bg
Pour reprendre une tâche suspendue sans monopoliser le terminal, utilisez bg. Le job continue alors en arrière-plan.
bg bg %1Sans argument,
bgreprend en général le job courant. Avec%1, vous ciblez explicitement le job numéro 1.Ramener une tâche au premier plan avec fg

Utilisez fg pour reprendre une tâche dans le terminal actif. C'est utile si vous devez répondre à une invite ou interrompre proprement le programme avec le clavier.
fg fg %1Comme pour
bg, vous pouvez cibler un numéro de job précis. La commande reprend alors l'exécution au premier plan.Arrêter proprement un processus avec kill

Pour terminer une tâche par son PID, utilisez d'abord kill sans forcer. Par défaut,
kill PIDenvoie un signal de terminaison que le programme peut traiter proprement.kill 1234 kill -TERM 1234Si le processus ne s'arrête pas après vérification, vous pouvez forcer avec
-KILL. Réservez cette option aux cas où l'arrêt normal échoue.kill -KILL 1234Cibler un programme par son nom avec pkill
Utilisez pkill si vous voulez envoyer un signal à partir d'un nom de processus plutôt que d'un PID. La logique reste la même : tentez d'abord une terminaison normale.
pkill firefox pkill -TERM python pkill -KILL firefoxCette commande est rapide, mais elle peut toucher plusieurs processus à la fois si le nom correspond à plusieurs instances. Vérifiez votre ciblage avant de l'exécuter.
Vérifier que le processus a bien changé d'état
Après un bg, fg, kill ou pkill, confirmez le résultat. Relancez
jobspour une tâche du shell, oupsetpgreppour un processus système.jobs -l pgrep -a firefox ps aux | grep firefoxCette vérification évite les erreurs de diagnostic. Un processus peut mettre un court instant à se terminer ou avoir été remplacé par un autre PID.
Tester la méthode sur un exemple simple
Lancez une commande simple en premier plan, par exemple
sleep 300. Suspendez-la avecCtrl+Z, listez-la avecjobs, relancez-la avecbg, puis ramenez-la avecfg.sleep 300Dans un second temps, ouvrez un autre terminal et retrouvez son PID avec
pgrep -a sleepoups aux | grep sleep. Terminez-la ensuite aveckill PID, puis vérifiez qu'elle a disparu.
Erreurs fréquentes & dépannage
Confondre job et PID est l'erreur la plus fréquente. Le format %1 sert à bg et fg, tandis que kill travaille d'abord avec un PID comme 1234.
Forcer trop tôt avec -KILL est aussi un mauvais réflexe. Essayez d'abord un arrêt normal avec kill ou pkill sans signal brutal, puis vérifiez le résultat.
Agir sur le mauvais nom avec pkill peut toucher plusieurs processus. Avant toute action large, contrôlez les correspondances avec pgrep -a.
Astuces & pour aller plus loin
Préférez pgrep -a quand plusieurs processus proches existent. La ligne de commande complète vous aide à distinguer un éditeur, un script ou un service lancé avec le même interpréteur.
Quand une commande occupe le terminal, pensez d'abord à Ctrl+Z, puis à bg ou fg selon le besoin. C'est souvent plus propre qu'ouvrir un second terminal dans l'urgence.
Questions fréquentes
Quelle différence entre ps et pgrep ?
ps affiche une liste de processus avec plusieurs colonnes, alors que pgrep recherche directement des PID à partir d'un nom ou d'un motif. Pour débuter, utilisez ps pour inspecter et pgrep pour cibler rapidement.
Pourquoi jobs ne montre-t-il pas mon service système ?
Parce que jobs ne suit que les tâches du shell courant. Un service lancé par le système ou une autre session n'apparaît pas dans cette liste.
Quand faut-il utiliser pkill plutôt que kill ?
Utilisez kill quand vous avez déjà le PID exact. Utilisez pkill quand vous ciblez un processus par son nom, en restant prudent si plusieurs instances existent.
Ctrl+C et kill font-ils la même chose ?
Non, pas exactement. Ctrl+C envoie un signal d'interruption à la commande au premier plan du terminal courant, tandis que kill permet d'envoyer un signal à un PID précis.
Conclusion
La bonne routine est simple : trouvez la tâche avec ps ou pgrep, gérez le contexte avec jobs, bg et fg, puis arrêtez avec kill ou pkill en commençant toujours par une fin propre. Si vous pratiquez cette séquence sur une commande sans risque comme sleep 300, vous retiendrez vite les bons réflexes.