Comment tuer un processus sous Linux

Nous avons tous eu ces jours où notre ordinateur fonctionne exceptionnellement lentement et bégaie même dans l’exécution des tâches de base. Sous Windows, vous n’avez que le Gestionnaire des tâches de Windows pour inspecter et tuer les processus qui ne sont pas si importants mais qui consomment d’énormes quantités de mémoire. Cependant, sous Linux, vous disposez de tout un arsenal de commandes et d’outils graphiques pour gérer ces tâches. Dans cet article, nous allons montrer quelques méthodes de ligne de commande (CLI) simples ainsi que des méthodes d’interface graphique pour savoir comment tuer un processus sous Linux.

Terminer le processus sous Linux (2023)

Mais avant de plonger dans le monde de la gestion des processus sous Linux, comprenons ce qu’est exactement un processus et ce qu’est un ID de processus dans les systèmes Linux.

Que sont les processus sous Linux

Sous Linux, chaque instance en cours d’exécution d’un programme est appelée « processus », tandis que chaque fichier exécutable est appelé programme. Lorsqu’un programme est exécuté, un processus est créé et chaque processus se voit attribuer un numéro d’identification unique à 5 chiffres appelé «ID de processus». Lorsqu’un processus a fini de s’exécuter ou est arrêté de manière forcée, son ID de processus est attribué au processus suivant sur la ligne.

Tuer le processus via la ligne de commande sous Linux

Bien que l’utilisation du terminal puisse parfois sembler intimidante par rapport à l’utilisation d’outils d’interface graphique pour des tâches de base, la gestion de divers processus devient beaucoup plus facile une fois que vous avez compris les commandes et leurs différentes options.

Signaux de terminaison

Lorsque vous essayez de tuer un processus à partir de l’interface graphique ou de la CLI sous Linux, le noyau envoie un signal de terminaison au processus. Le processus agit en conséquence, en fonction du signal reçu. Chacun de ces signaux se voit attribuer un numéro spécifique que le programme comprend rapidement. Il existe de nombreux types de signaux de terminaison, mais nous n’avons expliqué ici que les principaux :

SignalNumeric ValueDescriptionSIGHUP1It signifie ‘Signal Hangup’
Il est envoyé lorsque le terminal est fermé.SIGINT2Il signifie ‘Signal Interrupt’
Il est envoyé lorsque l’utilisateur termine le processus.SIGKILL9Il signifie ‘Signal Kill’
Il est envoyé lorsque vous devez quitter un processus immédiatementSIGTERM15Il signifie ‘Signal Termination’
Il est envoyé lorsque vous devez terminer un processus et libérer les ressources consomméesSIGSTOP19 – pour ARM, x86
17 – pour ALPHA
23 – pour MIPS
24 – pour PA-RISCit signifie ‘Signal Stop’
Il est envoyé lorsque vous devez interrompre un processus et le reprendre plus tard. Les signaux les plus couramment utilisés sont le SIGKILL (9) et le SIGTERM (15).

  Comment installer le client StandardNotes sous Linux

Identifier les ID de processus

Avant de mettre fin à un processus, vous devez connaître certains détails du processus, tels que l’ID du processus, la durée d’exécution, etc. Pour connaître les détails d’un processus, utilisez la commande ps :

ps

Avec la commande ps, vous devez rechercher le processus en faisant défiler et en notant son nom, ce qui peut être fastidieux. Au lieu de cela, vous pouvez même utiliser la commande grep avec la commande ps dans un pipeline, comme illustré ci-dessous :

ps | grep

Pour simplifier les choses, il existe une commande distincte qui affiche uniquement l’ID de processus de tout processus en cours d’exécution que vous devez connaître. La syntaxe pour utiliser la commande pidof est :

pidof

Terminer le processus à l’aide de la commande kill

Une fois que vous avez noté l’ID de processus du processus que vous souhaitez terminer, la commande la plus couramment utilisée pour terminer les programmes sur votre système Linux est la commande kill. La syntaxe pour utiliser la commande kill est :

tuer

Le paramètre est facultatif et la commande kill envoie le signal SIGTERM (15) par défaut. Vous pouvez envoyer n’importe quel autre signal par sa valeur numérique ou le nom réel du signal du tableau ci-dessus.

Terminer le processus à l’aide de la commande pkill

Si vous pensez que la recherche de l’ID de processus n’est pas pratique, vous pouvez utiliser la commande pkill. Il recherche les processus correspondant à un modèle, puis le tue. La syntaxe pour utiliser la commande pkill est :

pkill

Certaines des options courantes à coupler avec la commande pkill sont :

OptionDescription-nSélectionne uniquement les derniers processus correspondant au processus id-uSélectionne les processus appartenant à un utilisateur particulier-xSélectionne les processus correspondant exactement au modèle

Ceci est particulièrement important lorsque plusieurs utilisateurs travaillent sur différentes instances du même programme dans le même système et que l’une des instances commence à avoir un comportement inattendu. Par exemple, dans la capture d’écran ci-dessous, nous supprimons l’instance « gedit » appartenant à l’utilisateur « intel » à l’aide de la commande pkill sous Linux :

pkill -u intel gedit

Terminer le processus à l’aide de la commande killall

La commande killall fonctionne de la même manière que la commande kill mais elle tue tous les processus correspondant au nom du processus, quel que soit l’utilisateur. Par défaut, il envoie le signal SIGTERM s’il n’est pas spécifié autrement. Une chose intéressante à noter est que la commande killall ne peut jamais se tuer mais peut mettre fin à d’autres instances de la commande killall. La syntaxe pour utiliser la commande killall est :

killall

Certaines des options à coupler avec la commande killall sont :

OptionDescription-rInterprète le nom_processus comme un modèle regex, puis tue les processus correspondant au modèle-utue le processus spécifié appartenant à un propriétaire spécifié.-oTue les processus spécifiés plus anciens (commencés avant) qu’une heure spécifique.-yTue les processus spécifiés plus jeunes ( commencé après) l’heure spécifique.

  Comment jouer à des jeux en streaming Nvidia sur Linux avec Moonlight

La commande killall peut être utile pour terminer une série du même processus ou même tous les processus appartenant à un propriétaire spécifique. Ici, dans notre exemple, nous tuons tous les processus de « veille pendant 500 secondes » en utilisant la commande killall sous Linux :

killall -v sommeil

Terminer le processus Linux à l’aide de la commande top/htop

Cette méthode de suppression des processus est utile lorsque vous n’avez aucune idée des processus qui consomment le maximum de ressources. Dans les deux commandes, vous pouvez parcourir tous les processus en cours d’exécution ou même les processus zombies et les terminer rapidement. Pour utiliser la commande top pour surveiller vos ressources, utilisez la syntaxe dans le Terminal :

haut

Comprendre la sortie :

La sortie principale de la commande top est divisée en colonnes qui sont :

  • PID – affiche l’ID de processus du processus en cours d’exécution
  • Utilisateur – affiche le propriétaire du processus
  • PR – affiche la valeur de priorité du processus qui est attribuée par le système d’exploitation
  • NI – affiche les valeurs agréables qui ressemblent à l’attribution de valeurs espacées par l’utilisateur pour contrôler manuellement la priorité d’une tâche.
  • VIRT – affiche la quantité de mémoire virtuelle utilisée par le processus.
  • RES – affiche la quantité de mémoire physique utilisée par le processus
  • SHR – montre la quantité de mémoire partagée par d’autres processus
  • S – montre l’état actuel du processus qui peut être :
    • D – sommeil ininterrompu
    • R – courir
    • S – dormir
    • T – arrêté
    • Z-zombi
  • %CPU – Affiche la quantité de CPU utilisée par le processus en pourcentage
  • %MEM – Affiche la quantité de RAM utilisée par le processus en pourcentage
  • TIME+ – Affiche le temps d’exécution total du processus
  • Commande – Affiche la commande qui a été invoquée pour le processus.
  • Si vous ne connaissez pas l’ID de processus de la tâche que vous souhaitez tuer, parcourez la liste à l’aide des touches fléchées ou recherchez le nom du processus dans la table des processus sous Linux.

    Pour rechercher le nom du processus, appuyez sur ‘L’ sur le clavier et tapez le nom du processus que vous souhaitez rechercher. Une fois que vous avez trouvé le processus néfaste, appuyez sur ‘k’ sur le clavier pour tuer le processus. Maintenant, entrez l’ID de processus ou laissez-le au processus actuellement en surbrillance et appuyez sur ‘ENTER’. Ensuite, entrez le signal de terminaison, puis appuyez sur ‘ENTER’ pour arrêter le programme. Pour revenir au terminal, appuyez sur ‘q’ sur le clavier.

    Bien que la commande top affiche des détails tels que l’ID de processus, la consommation de mémoire, etc. pour tous les processus en cours d’exécution, elle n’est pas bien adaptée aux débutants car elle ne montre aucun mappage de touches ni comment l’utiliser. D’autre part, la commande htop a une interface plus conviviale, même pour un outil en ligne de commande. De plus, il affiche tous les détails dans une vue séparée, donc il n’encombre pas la fenêtre du terminal. Il n’est pas préinstallé dans la plupart des distributions et vous devez utiliser la commande suivante pour installer htop sous Linux :

      5 façons de modifier un PDF sous Linux

    sudo apt install -y htop

    Pour utiliser htop pour gérer les processus sous Linux, utilisez la commande ci-dessous :

    htop

    Pour tuer un programme, naviguez jusqu’au nom du processus que vous souhaitez terminer, appuyez sur ‘F9’ puis appuyez sur Entrée. Si vous avez besoin de rechercher et de tuer un programme, appuyez sur ‘F3’ sur le clavier, tapez le nom et appuyez sur Entrée. Le nom du processus sera mis en surbrillance, appuyez sur F9, puis appuyez sur Entrée sur le clavier pour terminer le processus.

    Tuer un processus via System Monitor sous Linux

    Si vous pensez que la méthode de la ligne de commande est difficile pour vous, vous pouvez utiliser l’outil de surveillance système intégré disponible sur chaque distribution Linux. Pour savoir comment cela fonctionne, ouvrez l’outil de surveillance du système à partir du menu Applications et suivez les étapes ci-dessous.

    1. Une fois l’outil de surveillance du système ouvert, vous verrez trois onglets en haut nommés – Processus, Ressources et Système de fichiers. Pour gérer vos processus, rendez-vous sur l’onglet « Processus ». Ici, vous verrez tous vos processus en cours d’exécution. Appuyez sur ‘CTRL+F’ pour rechercher un nom de processus. Cliquez sur le nom du processus que vous souhaitez terminer et cliquez sur « Terminer le processus ».

    2. Ensuite, vous recevrez une invite de confirmation indiquant si vous souhaitez mettre fin au processus ou non. Allez-y et cliquez sur le gros bouton rouge « Terminer le processus » pour tuer le processus sous Linux.

    Questions fréquemment posées

    Comment arrêter tous les processus sous Linux ?

    Si vous devez arrêter tous les processus (à l’exception du shell de connexion, de l’init et des processus spécifiques au noyau) pour un utilisateur spécifique sous Linux, utilisez la commande pkill ou la commande killall selon la syntaxe :

    pkill -u

    killall -u

    Si vous avez besoin de tuer tous les processus pour chaque utilisateur, y compris le système d’initialisation, appuyez sur les touches ‘ALT + Prt Sc + o’ du clavier.

    Est-il acceptable de mettre fin à un processus ?

    Lorsque vous fermez un processus d’arrière-plan non essentiel ou un processus utilisateur qui consomme beaucoup de mémoire système, vous libérez des ressources qui peuvent désormais être utilisées par d’autres processus. Mais, avant d’arrêter un processus, assurez-vous que vous ne tuez pas un processus essentiel du système d’exploitation.

    Quels sont les processus d’arrière-plan sous Linux ?

    Sous Linux, les processus d’arrière-plan sont des processus qui peuvent s’exécuter sans l’instance de shell ni aucune intervention de l’utilisateur. Ils peuvent être visualisés à l’aide de l’une des commandes – top, htop, ps, etc.

    Qu’est-ce qu’un processus zombie ?

    Un processus qui a été tué par l’utilisateur mais qui occupe toujours de la mémoire est appelé processus zombie.

    Que fait CTRL + Z sous Linux ?

    Lorsque vous utilisez CTRL + Z sous Linux, il envoie le signal SIGTSTP qui suspend le processus et l’envoie en arrière-plan. Lorsqu’un processus est dans un état suspendu en arrière-plan, vous ne pouvez pas le tuer tant qu’il n’est pas ramené au premier plan.

    Tuez facilement les processus sous Linux

    Tuer les processus de monopolisation de la mémoire est une tâche assez cruciale que chaque utilisateur devrait apprendre. Dans cet article, nous avons montré à la fois la méthode de ligne de commande, y compris des commandes comme killall et pkill, ainsi que les méthodes GUI pour tuer les processus sous Linux. Nous avons même détaillé comment utiliser des outils populaires comme top et htop pour gérer les processus sur votre PC Linux. Si vous rencontrez des problèmes lors de l’utilisation de ces outils pour tuer un processus, faites-le nous savoir dans les commentaires ci-dessous.