GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tuer un processus sous Linux ? Commandes pour terminer

Présentation

Si un processus Linux ne répond plus ou consomme trop de ressources, vous devrez peut-être le tuer.

La plupart des processus ont leurs propres méthodes d'arrêt. Malheureusement, les processus peuvent mal fonctionner et ne pas se laisser arrêter. Si un processus d'arrière-plan en cours d'exécution ne répond pas, il devient nécessaire d'utiliser une commande pour le tuer.

Voici un guide complet sur la façon de tuer un processus Linux à l'aide de la ligne de commande.

Quels processus pouvez-vous tuer sous Linux ?

Avant de tuer ou de mettre fin à un processus, vous devez tenir compte des autorisations.

Un utilisateur root peut tuer tous les processus. Vous pouvez soit ajouter sudo avant une commande pour l'exécuter en tant que root, ou obtenir un shell root avec su . Exécutez ensuite la commande.

Tuer un processus envoie un message de terminaison au processus donné. Il existe plusieurs types de messages de résiliation, notamment :

  • SIGKILL SIGKILL est le moyen ultime de tuer un processus. Il tuera toujours un processus et le tuera brusquement, générant une erreur fatale. SIGKILL devrait toujours fonctionner. Si cela ne fonctionne pas, le système d'exploitation a échoué.
  • SIGTERM SIGTERM tente de tuer un processus, mais contrairement à SIGKILL, il peut être bloqué ou autrement géré. Cela peut être considéré comme une manière plus douce de tenter de mettre fin à un processus.

Dans la plupart des cas, SIGKILL sera la méthode la plus rapide et la plus efficace pour terminer le processus.

Étape 1 :Afficher les processus Linux en cours d'exécution

Le top est le moyen le plus simple d'obtenir un aperçu complet des processus en cours d'exécution.

Pour afficher une liste de tous les processus en cours d'exécution, utilisez la commande :

top

La commande supérieure révélera les ID de processus et les utilisateurs, en plus de la quantité de mémoire et de puissance CPU utilisée par chaque processus.

Pour tuer les processus directement depuis le top interface, appuyez sur k et entrez l'ID de processus.

Pour quitter le top interface, appuyez sur q .

Étape 2 :Localisez le processus à éliminer

Avant de pouvoir tuer un processus, vous devez le trouver. Il existe plusieurs façons de rechercher un processus sous Linux. Les processus peuvent être localisés soit par un nom de processus (ou un nom de processus partiel), soit par un ID de processus (également appelé "pid").

Localiser un processus avec la commande ps

Le ps la commande affiche des informations similaires à top , bien qu'il ne se présente pas sous la forme d'une interface. Au lieu de cela, le ps La commande fournit une liste complète des processus en cours d'exécution, formatée en fonction des balises que vous ajoutez.

ps <options>

Les options les plus courantes à ajouter à cela sont "-aux":

  • -a . Affichez les processus de tous les utilisateurs plutôt que de l'utilisateur actuel uniquement.
  • -u . Fournissez des informations détaillées sur chacun des processus
  • -x . Inclure les processus qui ne sont pas contrôlés par les utilisateurs mais par des démons.

Par exemple, la commande ps -aux renverra une liste détaillée de tous les processus.

Trouver le PID avec pgrep ou pidof

La commande Linux pgrep est une manière plus complexe de trouver un processus. Cette commande renverra des processus basés sur des critères de sélection spécifiques, connus sous le nom de modèle. Le modèle est une expression régulière, telle que a* , où * serait un joker.

pgrep <options> <pattern>

Voici les options qui peuvent être utilisées avec cette commande :

  • -l . Répertoriez à la fois les noms de processus et les PID.
  • -n . Renvoie le processus le plus récent.
  • -o . Renvoie le processus le plus ancien.
  • -u . Rechercher uniquement les processus appartenant à un utilisateur spécifique.
  • -x . Ne trouve que les processus qui correspondent exactement au modèle donné.

La commande pgrep -u root affiche tous les processus appartenant à root. La commande pgrep -u root 'a*' renvoie les processus appartenant à root qui commencent par la lettre "a".

Le pidof La commande est utilisée pour trouver l'ID d'un processus, à condition que vous connaissiez le nom du processus.

pidof <options> <program>

Quelques options peuvent être incluses, telles que :

  • -c . Renvoyez uniquement les PID dans un seul répertoire racine.
  • -o . Omettez certains PID (incluez les processus à omettre après le drapeau).
  • -s . Ne renvoie qu'un seul PID.
  • -x . Renvoie également les PID des shells qui exécutent des scripts.

Étape 3 :Utiliser les options de la commande Kill pour terminer un processus

Il existe différentes méthodes pour tuer un processus sous Linux, selon que vous connaissez le nom du processus en cours d'exécution, le pid du processus ou simplement depuis combien de temps le processus est en cours d'exécution.

Commande killall

Le killall La commande est utilisée pour tuer les processus par leur nom. Par défaut, il enverra un signal SIGTERM. Le killall La commande peut tuer plusieurs processus avec une seule commande.

killall <process>

Plusieurs options peuvent être utilisées avec le killall commande :

  • -e . Trouvez une correspondance exacte pour le nom du processus.
  • -I . Ignorez la casse lorsque vous essayez de trouver le nom du processus.
  • -i . Demandez une confirmation supplémentaire lors de l'arrêt du processus.
  • -u . Tuez uniquement les processus appartenant à un utilisateur spécifique.
  • -v . Indiquez si le processus a été tué avec succès.

En plus de tuer les processus basés sur le nom, le killall La commande peut également être utilisée pour tuer en fonction de l'âge du processus, en utilisant les commandes suivantes :

  • -o . Utilisez cet indicateur avec une durée pour tuer tous les processus qui ont été exécutés plus que ce laps de temps.
  • -y . Utilisez cet indicateur avec une durée pour tuer tous les processus exécutés depuis moins de temps.

Le killall -o 15m La commande tuera tous les processus datant de plus de 15 minutes, tandis que la commande killall -y 15m La commande tuera tous les processus qui durent moins de 15 minutes.

Commande pkill

Le pkill la commande est similaire à pgrep commande, en ce sens qu'elle tuera un processus en fonction du nom du processus, en plus d'autres facteurs de qualification. Par défaut, pkill enverra le signal SIGTERM.

pkill <options> <pattern>

les options de pkill incluent :

  • -n . Ne tuez que le plus récent des processus découverts.
  • -o . Ne tuez que le plus ancien des processus découverts.
  • -u . Tuez uniquement les processus appartenant à l'utilisateur sélectionné.
  • -x . Tuez uniquement les processus qui correspondent exactement au modèle.
  • -signal . Envoyez un signal spécifique au processus, plutôt que SIGTERM.

commande kill

Si vous connaissez un ID de processus, vous pouvez le tuer avec la commande :

kill <processID>

Le kill La commande tuera un seul processus à la fois avec l'ID de processus donné. Il enverra un SIGTERM signal indiquant à un processus de s'arrêter. Il attend que le programme exécute sa routine d'arrêt.

Le signal -signal La commande peut être utilisée pour spécifier un signal qui n'est pas SIGTERM.

commande kill -9 Linux

kill -9 est une commande utile lorsque vous devez arrêter un service qui ne répond pas. Exécutez-le de la même manière qu'un kill normal commande :

kill -9 <processID>

Ou

kill -SIGKILL <processID>

Le kill -9 la commande envoie un SIGKILL signal indiquant à un service de s'arrêter immédiatement. Un programme qui ne répond pas ignorera un kill commande, mais elle s'arrêtera chaque fois qu'un kill -9 commande est émise. Utilisez cette commande avec prudence. Il contourne la routine d'arrêt standard afin que toutes les données non enregistrées soient perdues.

Votre système d'exploitation ne fonctionne pas correctement si un signal SIGKILL n'arrête pas un service.

commande supérieure

Le top La commande fournit une interface à travers laquelle un utilisateur peut naviguer dans les processus en cours d'exécution.

top

Pour tuer un processus spécifique, insérez k depuis l'interface supérieure, puis entrez l'ID de processus souhaité.

commande xkill

Le xkill command est un type spécial de commande qui ferme la connexion d'un serveur donné aux clients.

xkill <resource>

Si un serveur a ouvert un certain nombre de processus indésirables, xkill annulera ces processus.

Si xkill est exécuté sans spécifier de ressource, une interface s'ouvrira permettant à l'utilisateur de sélectionner une fenêtre à fermer.

Conseils clés sur l'arrêt d'un processus Linux

  • Lorsqu'un processus ne peut pas être fermé d'une autre manière, il peut être tué manuellement via la ligne de commande.
  • Pour tuer un processus sous Linux, vous devez d'abord trouver le processus. Vous pouvez utiliser le top , ps , pidof ou pgrep commandes.
  • Une fois que vous avez trouvé le processus que vous voulez tuer, vous pouvez le tuer avec le killall , pkill , kill , xkill ou top commandes.
  • Lorsque vous tuez un processus, vous pouvez envoyer un signal de terminaison SIGHUP, SIGKILL ou SIGTERM.
  • Vous devez avoir la permission de tuer un processus, que vous pouvez obtenir en utilisant le sudo commande.

Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment trouver et tuer le processus Zombie sous Linux

  3. Commandes Linux :Comment manipuler la priorité des processus

  4. Comment tuer les processus en cours d'exécution sous Linux

  5. Comment tuer un processus sous Linux en utilisant la commande ?

Comment tuer un processus sous Linux

Comment tuer ou terminer un processus Linux :Le guide ultime

Commandes pour la gestion des processus sous Linux

Comment envoyer des processus en arrière-plan sous Linux

Comment tuer les processus zombies dans Ubuntu

Comment tuer les processus sous Linux en utilisant kill, killall et pkill