Comment tuer un processus en cours d'exécution sur Linux
- 2052
- 472
- Lucas Bernard
Tout ce qui s'exécute sur un système Linux - un service, un script ou autre chose - est considéré comme un «processus.«Si vous devez mettre fin à un processus en cours d'exécution sur Linux, le tuer
La commande est sûre de faire le travail.
Dans ce guide pour les administrateurs Linux, nous passerons en revue tuer
Commande Linux et comment utiliser ses différentes options pour terminer ou «tuer», un processus en cours d'exécution sur Linux.
Dans ce tutoriel, vous apprendrez:
- Comment fonctionne la commande Kill?
- Comment voir quels processus fonctionnent
- Comment tuer un processus par PID
- Comment tuer un processus qui refuse de fermer
- Comment tuer un processus par son nom
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Ubuntu, Debian, Centos, Rhel, Fedora |
Logiciel | Aucun |
Autre | Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande. |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Comment fonctionne la commande Kill?
Avec un nom comme «Kill», vous pourriez vous attendre à ce que cet utilitaire soit utilisé pour mettre fin immédiatement à un processus. Bien que ce soit vrai, tuer
Seule les fonctions de cette manière lorsqu'elles sont utilisées avec certaines options. Par défaut, tuer
essaiera d'arrêter un processus aussi gracieusement que possible.
En termes techniques, tuer
envoie un Sigterm signale au processus spécifié, et qui demande au processus de fermer. C'est une façon polie de mettre fin à un processus en cours d'exécution et donne à l'application ou au service de service pour conclure les choses en premier - comme finir la rédaction des fichiers en journal, fermer les connexions ouvertes qui ont été engendrées par le processus, etc.
Le seul problème avec cela est qu'un programme obstiné peut ignorer le Sigterm signal. Cela se produit surtout dans un processus gelé ou «raccroché." Cependant, tuer
peut être utilisé pour envoyer de nombreux signaux différents à un processus, et peut même forcer les plus têtus à fermer avec un Sigkill signal. Nous passerons en revue ces options dans la section suivante.
La chose importante à retirer de ces informations est que, lorsque cela est possible, vous devez envoyer un signal SIGTerm ordinaire à un processus que vous souhaitez terminer. Tuant immédiatement un service avec un Sigkill Le signal est efficace à chaque fois et vous donnera des résultats instantanés, mais peut causer des problèmes futurs car le processus n'a pas eu la chance de fermer correctement.
Comment voir quels processus fonctionnent
Chaque processus de Linux se voit attribuer un «ID de processus» unique, généralement abrégé comme Piquer dans le terminal Linux. Parfois, connaître le PID d'un processus est nécessaire pour y mettre fin. Pour voir une liste des processus en cours d'exécution et leurs numéros PID correspondants, utilisez le ps
commande:
# ps -e
Cela peut produire beaucoup de sortie, car même une nouvelle installation de Linux peut avoir pas mal de processus en cours, il est donc généralement préférable de tuer cette commande pour grep
ou plus
.
Pour une vue plus gérable:
# ps -e | plus -15
Ou pour rechercher un processus spécifique (SSH dans cet exemple):
# ps -e | grep sshObtenez le PID d'un processus en cours d'exécution
Une autre façon pratique de voir une liste des processus en cours d'exécution et leurs PID est avec le haut
commande. Parfois, cela est encore plus utile, car il montre également la quantité de ressources système utilisées par les processus.
Comment tuer un processus par PID
Une fois que vous avez déterminé le PID du processus que vous souhaitez terminer, vous pouvez le spécifier comme un argument au tuer
commande. Par exemple, pour mettre fin à un processus avec un PID de 1234:
# Kill 1234
Cette commande envoie un Sigterm signal et devrait être capable d'arrêter la plupart des processus dans un deuxième ou deux. N'oubliez pas que vous pouvez utiliser le ps
commander à nouveau pour vérifier que le processus a fermé avec succès.
# ps -e | grep 1234
Comment tuer un processus qui refuse de fermer
Si vous avez rencontré un processus obstiné qui refuse de fermer, vous pouvez émettre un Sigkill signal avec le -9
option sur tuer
.
# Kill -9 1234
N'oubliez pas d'utiliser cette option avec parcimonie, car ce n'est pas la façon idéale de mettre fin à un processus (mais parfois vous devez).
Normalement, Sigterm et Sigkill sont probablement les deux seuls signaux que vous devrez utiliser, mais il y en a beaucoup d'autres que vous pouvez envoyer avec le tuer
commande. La commande suivante sortira une liste complète:
# kill -lUne liste des signaux que tuer peut envoyer
Il est bon d'être au moins conscient des autres options, car certains programmes ou scripts peuvent recommander leur utilisation.
Comme vous pouvez le voir dans la sortie, Sigkill est répertorié au n ° 9, c'est pourquoi le -9
Le commutateur envoie le Sigkill signal. Spécifiez un numéro différent pour envoyer son signal respectif à un processus.
Comment tuer un processus par son nom
Il existe un moyen plus rapide de mettre fin à un processus que d'avoir à rechercher son pid à chaque fois. Utilisez le pkill
commande et le nom du processus que vous souhaitez tuer. Par exemple, voici comment tuer SSH:
# pkill ssh
Le pkill
La commande est capable d'envoyer différents signaux, tout comme le régulier tuer
commande:
# pkill -9 ssh
Ne vous inquiétez pas d'obtenir le nom exact du processus, soit. Cette commande a tué un processus nommé SSH-Agent qui fonctionnait sur notre système.
Il y a un inconvénient à utiliser pkill
au lieu de tuer
. Dites que vous avez deux processus SSH en cours d'exécution, «SSH-Server» et «SSH-Agent». Émettre la commande ci-dessus pkill
va terminer ces deux processus, même si vous aviez seulement fini à SSH-Agent.
C'est aussi un problème si vous avez plusieurs instances de script en cours d'exécution, depuis que pkill
Pour terminer ce script va terminer toutes les instances du script. Là encore, parfois ce comportement peut être préférable. Si vous avez besoin du contrôle plus granulaire, n'oubliez pas d'opter pour le tuer
commande à la place.
Conclusion
Dans cet article, nous avons vu comment tuer tout processus exécuté sur un système Linux en utilisant le tuer
commande. Nous avons appris à tuer un processus soit par son PID ou par son nom, ainsi que les avantages et les inconvénients des deux méthodes.
Avec connaissance du tuer
commande et les meilleures pratiques pour l'utiliser, vous avez plus de contrôle sur les processus exécutés sur votre système. Ceci est particulièrement pratique pour les programmes qui «raccrochent» et refusent de fermer parfois.
Tutoriels Linux connexes:
- Choses à installer sur Ubuntu 20.04
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Commandes Linux de base
- Comment propager un signal aux processus d'enfants à partir d'un bash…
- Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
- Une introduction à l'automatisation Linux, des outils et des techniques
- Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
- Téléchargement Linux
- Installez Arch Linux dans VMware Workstation
- Comment imprimer l'arbre du répertoire à l'aide de Linux
- « Comment vérifier et surveiller l'utilisation du processeur sur Linux
- Comment mettre à niveau Debian 9 Stretch vers Debian 10 Buster »