Comment tuer un processus en cours d'exécution sur Linux
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 avez besoin de mettre fin à un processus en cours d'exécution sur Linux, la commande kill est sûre de faire le travail.
Dans ce guide pour les administrateurs Linux, nous allons passer en revue la commande kill 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
Comment tuer un processus en cours d'exécution sur Linux
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 la commande sudo . |
Comment fonctionne la commande Kill?
Avec un nom comme «Kill», vous pouvez vous attendre à ce que cet utilitaire soit utilisé pour mettre fin immédiatement un processus. Bien que cela soit vrai, Kill ne fonctionne que de cette manière lorsqu'il est utilisé avec certaines options. Par défaut, kill essaiera d'arrêter un processus aussi gracieusement que possible.
En termes techniques, kill envoie un signal SIGTERM au processus spécifié, et qui demande au processus de s'arrêter. 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, clôturer 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 signal SIGTERM . Cela se produit surtout dans un processus gelé ou «raccroché. "Cependant, kill peut être utilisé pour envoyer de nombreux signaux différents à un processus, et peut même forcer les plus obstinés à fermer avec un signal sigkill . 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
Comment voir quels processus fonctionnent
Chaque processus de Linux se voit attribuer un «ID de processus» unique, généralement abrégé sous forme pid dans le terminal Linux. Parfois, la connaissance du 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 la commande ps :
ps -e
Cela peut produire beaucoup de sortie, car même une nouvelle installation de Linux peut avoir pas mal de processus en cours d'exécution, 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 | more -15
Ou pour rechercher un processus spécifique (ssh dans cet exemple):
ps -e | grep ssh
Obtenez 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 la commande top . Parfois, cela est encore plus utile, car il montre également la quantité de ressources système utilisées par les processus.
Voir le PID avec la commande supérieure
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 argument à la commande kill . Par exemple, pour mettre fin à un processus avec un PID de 1234:
kill 1234
Cette commande envoie un signal SIGTERM et devrait être en mesure d'arrêter la plupart des processus dans un deuxième ou deux. N'oubliez pas que vous pouvez utiliser à nouveau la commande ps pour vérifier que le processus s'est 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 signal Sigkill avec l'option -9 sur kill .
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 le devez).
Normally, SIGTERM and SIGKILL are probably the only two signals you will need to use, but there are many others that you can send with the kill commandement. La commande suivante sortira une liste complète:
kill -L
Une 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 # 9, c'est pourquoi le Switch -9 envoie le signal Sigkill . 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 de devoir chercher son PID à chaque fois. Utilisez la commande pkill et le nom du processus que vous souhaitez tuer. Par exemple, voici comment tuer SSH:
pkill ssh
La commande pkill est capable d'envoyer différents signaux, tout comme la commande kill : la commande:
pkill -9 ssh
Ne vous inquiétez pas non plus d'obtenir le nom exact du processus. 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 kill . Dites que vous avez deux processus SSH en cours d'exécution, «SSH-Server» et «SSH-Agent». La publication de la commande ci-dessus avec pkill va mettre fin à ces deux processus, même si vous aviez seulement fini à SSH-Agent.
C'est également un problème si vous avez plusieurs instances d'un script en cours d'exécution, car disons pkill pour mettre fin à ce script finira à 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 la commande kill .
Conclusion
Dans cet article, nous avons vu comment tuer tout processus exécuté sur un système Linux en utilisant la commande kill . Nous avons appris à tuer un processus soit par son PID, soit par son nom, ainsi que les avantages et les inconvénients des deux méthodes.
Avec la connaissance de la commande kill 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 parfois de fermer.



