Comment tuer les processus du terminal Linux

Contenu

Terminal Linux stylisé sur le thème d'Ubuntu

Parfois, tuer une procédure est le seul moyen de s'en débarrasser. Malgré le nom sévère, “tuer” un procedimiento simplemente significaobligarlo a abandonar”. Ensuite, Nous vous montrons comment le faire à partir de la ligne de commande de Linux ou macOS.

Qu'est-ce qu'une procédure?

Exécuter des programmes comme votre navigateur Web, les processus d'arrière-plan associés à votre environnement de bureau et aux services système Linux sont tous des processus.

Vous pouvez regrouper les processus en deux groupes:

  • Processus de premier plan sont ceux qui ont été initiés ou initiés par un utilisateur. Ils peuvent être dans une fenêtre de terminal ou ils peuvent être une application graphique.
  • Processus en arrière-plan sont tous des processus qui démarrent automatiquement et n'ont aucune interaction avec les utilisateurs. Ils n'attendent pas l'entrée des utilisateurs ou ne leur présentent pas de résultats ou de résultats. Les processus d'arrière-plan sont des choses comme des services et des démons.

Si les processus de premier plan sont l'avant du personnel du théâtre et les acteurs, los procesos de fondo son el equipo detrás del escenario “derrière la scène”.

Lorsque les processus se comportent mal ou fonctionnent mal, peut prendre trop de temps CPU, consommez votre RAM ou entrez dans un cycle de calcul serré et arrêtez de répondre. Les applications graphiques peuvent refuser de répondre aux clics de souris. Les applications de terminal peuvent ne jamais le renvoyer à l'invite de commande.

La solution humaine

Matarun procedimiento simplemente significaforzar el cierre del procedimiento”. Cela peut être nécessaire si la procédure refuse de répondre.

Linux fournit kill, pkill, et killall commandes pour vous permettre de faire exactement cela. Ces commandes peuvent être utilisées avec tout type de procédure, graphique ou ligne de commande, au premier plan ou en arrière-plan.

La commande kill

Utilisation kill, vous devez connaître l'identifiant de la procédure (PID) de la procédure que vous souhaitez terminer. Les ps La commande peut être utilisée pour trouver le PID d'une procédure.

Pour avoir ps rechercher dans tous les processus utiliser le -e (tous les processus) option. Canaliser la sortie à travers less il est conseillé, il y en aura assez. Écrivez ps, un espace, -e, un espace, | (un caractère pipe), un autre espace, puis écrivez less. Appuyez sur Entrée pour exécuter la commande.

ps -e | moins

Cela vous donnera une liste de processus équivalents à la capture d'écran suivante. Vous pouvez rechercher vers l'avant à less en utilisant le / et vous pouvez rechercher en arrière avec le ? clé.

sortie ps dans une fenêtre de moins

Pour vous concentrer sur la procédure qui vous intéresse, canaliser la sortie de ps à travers de grep et précisez le nom, ou une partie du nom, de la procédure.

ps -e | obturateur grep

commande ps transmise via grep pour trouver le processus d'obturation

Une fois que vous avez localisé le PID de la procédure que vous souhaitez terminer, le transmettre à kill commande en paramètre. Pour finir le shutter procédure identifiée par la commande ci-dessus, utilise cette commande:

tuer 2099

Les kill Le commando est un tueur silencieux; ne vous donne aucun retour s'il a réussi.

La commande pkill

Les pkill La commande permet de tuer une procédure (les processus) par son nom. Il n'est pas nécessaire d'identifier la procédure par PID. Utilisation pkill vous fournissez une définition de recherche qui pkill utilisé pour comparer avec la liste des processus en cours. Les processus d'appariement se terminent. Pour cela, vous devez être sûr d'avoir correctement orthographié ce terme de recherche.

Comme filet de sécurité, Vous pouvez utiliser pgrep commander avant de vous utilisez le pkill commander. Les pgrep La commande accepte également une définition de recherche. Il listera le PID de chaque procédure qui correspond au terme de recherche. C'est sûr parce que pgrep n'émettra aucun signal d'interruption aux processus, et si vous avez mal orthographié le terme de recherche, ne supprimera pas une autre procédure par erreur. Vous pouvez vous assurer que vous avez bien pensé votre terme de recherche avant de passer à pkill. Les deux pkill et pgrep traiter le terme de recherche de la même manière. Son traitement est si équivalent que partager la même page de manuel.

Supongamos que hay un procedimiento consubq” en votre nom. Nous utiliserons le ps -u dave | grep commande de jeter un œil derrière le rideau. Puede ver quesubqcoincidirá con ese procedimiento y solo con ese procedimiento. C'était juste pour que vous puissiez voir le nom complet de la procédure.

ps -u dave | grep subq

Supposons que notre utilisateur il n'a pas c'est fait; todo lo que conocen es que el nombre del procedimiento contiene la subcadenasubq”. Ils utilisent pgrep pour vérifier qu'il n'y a qu'une seule correspondance avec le terme de recherche. Ils utilisent ensuite ce terme de recherche avec pkill.

pgrep subq
pkill subq

Vous pouvez utiliser pkill tuer plusieurs processus en même temps. Ici, l'utilisateur exécute pgrep pour vérifier combien de processus Chrome a lancé. Ils utilisent pkill pour tous les tuer. Plus tard, ils vérifient avec pgrep que tous ont été éliminés.

pgrep chrome
pkill chrome
pgrep chrome

Si plusieurs processus portant le même nom sont en cours d'exécution, mais tu ne veux pas tous les supprimer, vous pouvez utiliser pgrep avec lui -f (ligne de commande) possibilité d'identifier quelle procédure est quelle. Un exemple simple serait deux ping Processus. Vous avez l'intention de tuer l'un d'eux mais pas l'autre. Vous pouvez utiliser vos lignes de commande pour les distinguer. Notez l'utilisation de guillemets pour envelopper le paramètre de ligne de commande.

pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"

pgrep pkill avec la ligne de commande ping

La commande Killall

Avertissement: Sur les systèmes d'exploitation Solaris et OpenIndiana, les killall la commande sera tuer tous les processus qui vous appartiennent. Si vous êtes root ou si vous avez émis sudo killall va redémarrer votre ordinateur! Au cours de la recherche pour ce poste, ce comportement a été confirmé avec la dernière version d'OpenIndiana Hipster 2018.10.

Les killall commander fonctionne de la même manière Al pkill commande mais avec une différence spécifique. Au lieu de passer une définition de recherche à la commande, vous devez fournir le nom exact de la procédure.

Vous ne pouvez pas fournir une correspondance partielle à un nom de procédure; vous devez fournir le nom complet de la procédure, comme on le montre:

killall fermé
obturateur killall

Les -y (plus petit que) vous permet de tuer les processus en cours d'exécution depuis moins qu'une période spécifiée. La période est indiquée en chiffres suivis de l'une de ces unités:

  • s (secondes)
  • m (minutes)
  • h (Heures)
  • ré (jours)
  • w (semaines)
  • M (mois, Remarque, “M” lettre capitale)
  • et (années)

Pour tuer une procédure appelée ana qui vient d'être lancé et laisse toutes les instances précédentes de ana en action, vous pouvez utiliser les paramètres suivants avec killall, si j'avais réagi en deux minutes:

killall -y 2m ana

killall avec option plus jeune que

Les -o L'option (avant de) vous permet de tuer les processus qui s'exécutent depuis plus d'une période spécifiée. Cette commande tuera tout le monde ssh connexions qui ont fonctionné pendant plus d'une journée:

killall -o 1d sshd

Ne sois pas trop heureux

Ces commandes vous permettront d'identifier et de terminer les processus erronés avec précision et en toute sécurité correctement.

Soyez toujours prudent. Premier, assurez-vous que la procédure que vous êtes sur le point de terminer est vraiment celle que vous souhaitez. En second lieu, revérifier: soyez prudent et assurez-vous que la procédure cible est celle que vous souhaitez terminer. Procédez à l'achèvement de la procédure une fois que vous êtes satisfait.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.