Comment tuer un processus sous Linux

How Kill Process Linux



Chaque système d'exploitation Linux est livré avec la commande kill. Le seul but de cet outil est de terminer un processus cible. C'est un outil puissant qui rend Linux assez polyvalent, en particulier dans les domaines des serveurs et des entreprises où une modification / mise à jour majeure peut prendre effet sans redémarrer l'ensemble de la machine. Dans cet article, je vais montrer comment tuer un processus en utilisant tuer , tuer et tuer tous .

Tuer un processus

Pour tuer un processus, nous utiliserons une poignée d'outils : tuer , tuer , et tuer tous . Tous fonctionnent essentiellement de la même manière.







Ces outils ne terminent pas le processus eux-mêmes. Au lieu de cela, ils envoient un signal désigné au processus cible ou aux groupes de processus. Si vous n'avez spécifié aucun signal spécifique, SIGTERM est envoyé comme signal par défaut. Cependant, il existe un certain nombre de signaux pris en charge, par exemple, SIGKILL, SIGHUP, etc.



Voici la structure de commande de base pour tuer , tuer et tuer tous .



$tuer <signal_ou_options> <PID(s)>
$ pkill<signal_ou_options> <nom du processus>
$tuer tous <option> <nom du processus>

Dans la mesure du possible, il est recommandé d'utiliser tuer .





Tuer , tuer et tuer tous Emplacements

Kill est la commande par défaut pour terminer un processus.



$tuer --aider

Il est exécuté à partir du répertoire /usr/bin.

$lequel tuer

L'avantage est qu'elle permet également d'accéder à pkill, une autre commande similaire à kill qui permet de terminer le processus en fonction de leur nom.

$tuer--aider

$lequeltuer

Certaines applications exécutent plusieurs processus du même exécutable. Si vous souhaitez mettre fin à un certain nombre de processus portant le même nom, utilisez l'outil killall.

$tuer tous --aider

$lequel tuer tous

Lister tous les processus en cours

La toute première tâche consiste à identifier le PID (numéro d'identification du processus) et/ou le nom du processus que vous souhaitez terminer. Pour cet exemple, j'utiliserai Firefox comme processus cible à terminer. Exécutez la commande suivante pour répertorier tous les processus en cours d'exécution sur le système.

$ps

Pour la plupart des tâches, nous devons connaître le PID du processus cible. Cependant, dans certaines situations, l'utilisation du nom de processus est plus appropriée.

Si vous connaissez le nom exact du processus cible, vous pouvez obtenir directement le PID en utilisant pidof .

$pidof <nom du processus>

Un autre outil intéressant pour récupérer les informations sur le processus cible est pgrep. Il est spécialement conçu à cet effet.

$pgrep<option> <nom du processus>

Tuer les signaux

Voyons maintenant les signaux pris en charge par les outils de suppression. C'est une liste énorme. Bien sûr, tous ne sont pas nécessaires pour chaque situation. En fait, la plupart des situations ne nécessitent qu'une poignée de signaux.

Tout d'abord, jetons un coup d'œil à la liste qui prend en charge les kills.

$tuer -l

Il existe 2 façons de définir le signal que vous souhaitez envoyer. Vous pouvez soit utiliser le nom complet du signal, soit sa valeur équivalente.

$tuer-<signal> <PID>

Ou,

$tuer-<valeur_signal> <PID>

Les signaux les plus populaires sont SIGHUP (1), SIGKILL (9) et SIGTERM (15). Généralement, SIGTERM est le moyen par défaut et le plus sûr de terminer un processus cible.

Dans le cas de pkill, le signal pris en charge est le même que kill. Cependant, dans le cas de killall, le nombre de signaux pris en charge et les noms de signaux sont différents.

$tuer tous -l

Tuer un processus

Pour tuer un processus, nous avons besoin du PID de ce processus cible. En supposant que vous ayez le PID, exécutez la commande suivante pour le tuer.

$tuer <option> <PID>

Ici, kill enverra le signal par défaut SIGTERM au(x) PID. Si vous souhaitez mettre fin à plusieurs processus, mentionnez tous les PID séparés par un espace.

$tuer <option> <PID_1> <PID_2>

Précisons quel signal vous souhaitez envoyer à la cible.

Voulez-vous terminer un processus en utilisant uniquement son nom ? Utilisez pkill.

$tuer<option> <nom du processus>

Dans certains cas, une application particulière peut avoir trop de processus en cours d'exécution. La saisie de tous ces PID prend du temps et est fastidieuse. Dans de tels scénarios, nous utiliserons l'outil killall. C'est assez similaire à kill mais cela fonctionne avec le nom du processus.

$tuer tous <option> <nom du processus>

Par exemple, lors de l'exécution de Firefox, il démarre une poignée de processus. Pour les tuer tous en même temps, exécutez cette commande.

$tuer tousfirefox

Vous voulez mettre fin à tous les processus en cours d'exécution sous un certain utilisateur ? Killall peut faire le travail, pas de problème. Soyez prudent lorsque vous exécutez celui-ci, car il pourrait endommager le système et créer d'autres problèmes. Cela ne fonctionnera pas si vous essayez de mettre fin à des processus qui s'exécutent sous un autre utilisateur avec des privilèges plus élevés.

$tuer tous -u <utilisateur>

Conflit d'autorisation

Les caractéristiques inhérentes à la hiérarchie des utilisateurs Linux s'appliquent également lorsque vous êtes sur le point de mettre fin à une application. Un utilisateur ne peut pas terminer les processus qui s'exécutent avec des privilèges plus élevés, seulement un processus avec des privilèges égaux/inférieurs. De plus, un utilisateur ne peut pas manipuler les processus qui s'exécutent sous un autre utilisateur.

Par exemple, considérons la commande yes. S'il est appelé en tant qu'utilisateur actuel, il peut être facilement terminé en utilisant kill.

$tuer Oui

Maintenant, et si Oui fonctionnait sous racine ? Appeler kill en tant qu'utilisateur actuel ne fonctionnera pas.

De même, si un processus s'exécutait sous un autre utilisateur, vous ne pouvez pas le terminer à partir d'un autre compte d'utilisateur.

Dernières pensées

Dans cet article, seules les bases et l'utilisation courante de ces commandes ont été présentées. Ces outils de destruction sont capables de plus que cela. Pour avoir une connaissance approfondie des capacités de n'importe quel outil, je vous recommande de consulter la page de manuel.

$homme tuer

$hommetuer

Prendre plaisir!