Comment tuer un processus en Linux

Comment tuer un processus en Linux
Chaque système d'exploitation Linux est livré avec la commande Kill. Le seul but de cet outil est de résilier un processus cible. C'est un outil puissant qui rend Linux assez polyvalent, en particulier dans les champs de serveurs et d'entreprises où un changement / mise à jour majeur peut prendre effet sans redémarrer toute la machine. Dans cet article, je vais montrer comment tuer un processus en utilisant tuer, pkill et tuer tous.

Tuer un processus

Pour avoir tué un processus, nous utiliserons une poignée d'outils: tuer, pkill, 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 pas précisé de 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, Sigup, etc.

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

$ kill
$ pkill
$ killall

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

Tuer, pkill et tuer tous Emplacements

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

$ kill - help

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

$ qui tue

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

$ pkill - help
$ quel pkill

Certaines applications exécutent plusieurs processus du même exécutable. Si vous souhaitez résilier un certain nombre de processus avec le même nom, utilisez l'outil Killall.

$ killall - help
$ qui killall

Énumérer tous les processus en cours d'exécution

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

$ ps -a

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

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

$ pidof

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

$ pgrep

Tuer des signaux

Maintenant, jetons un coup d'œil aux signaux que les outils de mise à mort prennent en charge. C'est une énorme liste. 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 tue les supports.

$ kill -l

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

$ kill -

Ou,

$ kill -

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 supporté est le même que Kill. Cependant, dans le cas de Killall, le nombre de signaux pris en charge et les noms de signal sont différents.

$ killall -l

Tuer un processus

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

$ kill

Ici, Kill enverra le signal par défaut SIGTERM au (s) PID (s). Si vous vouliez terminer plusieurs processus, mentionnez toutes les pides séparées par l'espace.

$ kill

Spécions le signal que vous souhaitez envoyer à la cible.

Souhaite terminer un processus en utilisant son nom uniquement? Utiliser Pkill.

$ pkill

Dans certains cas, une application particulière peut avoir trop de processus en cours d'exécution. Tapier toutes ces PID est long et fatigant. Dans de tels scénarios, nous utiliserons l'outil Killall. C'est assez similaire à Kill mais cela fonctionne avec le nom du processus.

$ killall

Par exemple, lors de l'exécution de Firefox, cela commence une poignée de processus. Pour les tuer tous à la fois, exécutez cette commande.

$ killall firefox

Veulent résilier tous les processus qui s'exécutent sous un certain utilisateur? Killall peut faire le travail, pas de problème. Soyez prudent lors de l'exécution de celui-ci car il pourrait décomposer le système et créer d'autres problèmes. Cela ne fonctionnera pas si vous essayez de résilier les processus qui s'exécutent sous un utilisateur différent avec un privilège plus élevé.

$ killall -u

Conflit d'autorisation

Les caractéristiques inhérentes de la hiérarchie de l'utilisateur Linux s'appliquent également lorsque vous êtes sur le point de résilier une application. Un utilisateur ne peut pas terminer les processus qui s'exécutent avec un privilège plus élevé, seulement un processus avec un privilège égal / inférieur. De plus, un utilisateur ne peut pas manipuler des processus qui s'exécutent sous différents utilisateurs.

Par exemple, considérons la commande oui. Si cela s'appelle comme utilisateur actuel, il peut être facilement licencié à l'aide de Kill.

$ tuer oui

Maintenant, et si Oui courait sous racine? Appeler Kill car l'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 commune de ces commandes ont été présentées. Ces outils de mise à mort sont capables de plus que cela. Pour avoir une connaissance approfondie des capacités de tout outil, je recommande de consulter la page de l'homme.

$ man tuer
$ man pkill

Apprécier!