Parfois, tuer une procédure est le seul moyen de s'en débarrasser. Malgré le nom sévère, “tuer” un procedimiento simplemente significa “obligarlo 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
“Matar” un procedimiento simplemente significa “forzar 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é.
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
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 con “subq” en votre nom. Nous utiliserons le ps -u dave | grep
commande de jeter un œil derrière le rideau. Puede ver que “subq” coincidirá 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 subcadena “subq”. 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"
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
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.