Débutant

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.

Maîtriser 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

  1. 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 -ef

    Si 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 firefox
  2. Rechercher 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 python

    L'option -l ajoute le nom du processus, et -a affiche la ligne de commande complète. C'est utile quand plusieurs processus portent un nom proche.

  3. Suspendre une tâche lancée au premier plan

    Des mains sur un clavier devant un écran affichant un terminal, au moment où une tâche au premier plan est interrompue.

    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.

  4. 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 -l

    L'option -l ajoute le PID en plus du numéro de job. Ce détail est pratique pour relier le monde du shell à celui de kill et ps.

  5. 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 %1

    Sans argument, bg reprend en général le job courant. Avec %1, vous ciblez explicitement le job numéro 1.

  6. Ramener une tâche au premier plan avec fg

    Un poste Linux avec terminal actif où une tâche précédemment suspendue revient au premier plan.

    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 %1

    Comme pour bg, vous pouvez cibler un numéro de job précis. La commande reprend alors l'exécution au premier plan.

  7. Arrêter proprement un processus avec kill

    Un écran de terminal et un clavier pendant l’arrêt propre d’un processus sur un système Linux.

    Pour terminer une tâche par son PID, utilisez d'abord kill sans forcer. Par défaut, kill PID envoie un signal de terminaison que le programme peut traiter proprement.

    kill 1234
    kill -TERM 1234

    Si 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 1234
  8. Cibler 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 firefox

    Cette 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.

  9. Vérifier que le processus a bien changé d'état

    Après un bg, fg, kill ou pkill, confirmez le résultat. Relancez jobs pour une tâche du shell, ou ps et pgrep pour un processus système.

    jobs -l
    pgrep -a firefox
    ps aux | grep firefox

    Cette vérification évite les erreurs de diagnostic. Un processus peut mettre un court instant à se terminer ou avoir été remplacé par un autre PID.

  10. Tester la méthode sur un exemple simple

    Lancez une commande simple en premier plan, par exemple sleep 300. Suspendez-la avec Ctrl+Z, listez-la avec jobs, relancez-la avec bg, puis ramenez-la avec fg.

    sleep 300

    Dans un second temps, ouvrez un autre terminal et retrouvez son PID avec pgrep -a sleep ou ps aux | grep sleep. Terminez-la ensuite avec kill 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.

Commentaires · Aucun commentaire pour l'instant

Soyez le premier à réagir.

Laisser un commentaire