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 :
Signal | Valeur numérique | Description |
---|---|---|
SIGHUP | 1 | Cela signifie ‘Signal Hangup’ Il est envoyé lorsque le terminal est fermé. |
SIGINT | 2 | Cela signifie ‘Interruption du signal’ Il est envoyé lorsque l’utilisateur termine le processus. |
SIGKILL | 9 | Cela signifie ‘Signal Kill’ Il est envoyé lorsque vous devez quitter un processus immédiatement |
SIGTERME | 15 | Cela signifie ‘Signal Terminaison’ Il est envoyé lorsque vous devez terminer un processus et libérer les ressources consommées |
SIGSTOP | 19 – pour ARM, x86 17 – pour ALPHA 23 – pour MIPS 24 – pour PA-RISC |
Cela signifie ‘Signal d’arrêt’ Il est envoyé lorsque vous devez interrompre un processus et le reprendre plus tard |
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 ps
commande:
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 le grep
commande avec le ps
commande dans un pipeline, comme illustré ci-dessous :
ps | grep <process_name>
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 à utiliser pidof
la commande est :
pidof <process_name>
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 :
kill <signal> <process_id>
Le <signal>
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 en utilisant 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 <options> <pattern>
Certaines des options courantes à coupler avec la commande pkill sont :
Option | Description |
---|---|
-n |
Sélectionne uniquement les derniers processus correspondant à l’ID de processus |
-u |
Sélectionne les processus appartenant à un utilisateur particulier |
-x |
Sé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
Le killall
commande fonctionne de manière similaire à la kill
mais il tue tous les processus correspondant au nom du processus, quel que soit l’utilisateur. Par défaut, il envoie le Signal SIGTERM si non spécifié autrement. Une chose intéressante à noter est que le killall
La commande ne peut jamais se tuer mais peut mettre fin à d’autres instances de la killall
commande. La syntaxe à utiliser killall
la commande est :
killall <options> <process_name>
Certaines des options à coupler avec la commande killall sont :
Option | Description |
---|---|
-r |
Interprète le process_name comme un modèle regex, puis tue les processus correspondant au modèle |
-u |
tue le processus spécifié appartenant à un propriétaire spécifié. |
-o |
Tue les processus spécifiés antérieurs (démarrés avant) à une heure spécifique. |
-y |
Tue les processus spécifiés plus jeunes (commencés après) l’heure spécifique. |
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 sleep
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 :
top
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 – montre le propriétaire du processus
- RP – 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
- TEMPS+ – Affiche le temps d’exécution total du processus
- Commande – Indique quelle commande 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 le top
La commande 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, le htop
command 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 :
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 le nom du processus sera mis en surbrillanceappuyez 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 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 <username>
killall -u <username>
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.