Avez-vous déjà rencontré une situation dans laquelle vous deviez arrêter un processus en cours d’exécution sur un port spécifique de votre machine Linux ?
Vous craignez peut-être qu’une application que vous exécutez se comporte mal ou monopolise les ressources de votre réseau ou la puissance du processeur local. Une telle application pourrait même constituer une menace pour la sécurité que vous souhaitez éliminer.
Table des matières
Quelle que soit la raison, vous pouvez utiliser les commandes fuser, lsof et netstat du terminal (avec kill) pour vous aider à trouver et à tuer tout processus Linux utilisant un numéro de port. Ces commandes fonctionneront sur la plupart des systèmes d’exploitation Linux, y compris Ubuntu.
Comment tuer un processus Linux à l’aide de la commande fuser
L’un des moyens les plus simples de tuer un processus à l’aide d’un numéro de port est d’utiliser la commande fuser. Cette commande de terminal Linux peut répertorier ou tuer les processus accédant aux fichiers ou aux sockets. Si une application s’exécute avec une activité réseau (et utilise donc un port ouvert), elle fait probablement l’une de ces deux choses.
Avant de continuer, vous devez vous assurer que vous êtes à l’aise avec un terminal de ligne de commande sur votre PC Linux.
Pour répertorier les processus qui utilisent un numéro de port à l’aide de fuser, vous pouvez utiliser la syntaxe suivante :
fuser-n protocol port
Dans cet exemple, le protocole peut être tcp ou udp, tandis que le port est le numéro de port que vous souhaitez vérifier. Par exemple, pour voir quels processus utilisent le port TCP 80, vous pouvez exécuter :
fuser-n tcp 80
Cela imprimera les ID de processus (PID) des processus utilisant ce port.
Pour tuer ces processus, vous pouvez ajouter l’option-k à fuser. Cela enverra un signal SIGTERM à chaque processus, leur demandant de se terminer normalement. Par exemple :
fuser-k-n tcp 80
Cela tuera tous les processus utilisant le port TCP 80.
Si certains processus ne répondent pas à SIGTERM , vous pouvez utiliser-KILL au lieu de-k. Cela enverra un signal d’arrêt (SIGKILL), qui peut aider à forcer les processus en cours d’exécution que vous avez identifiés à se terminer immédiatement. Cependant, cela peut entraîner une perte ou une corruption des données, alors utilisez-le avec prudence. Par exemple :
fuser-KILL-n tcp 80
Cela tuera tous les processus utilisant le port TCP 80 avec force. Si vous rencontrez des problèmes, exécutez ces commandes en tant que super utilisateur (à l’aide de la commande sudo) ou en utilisant l’utilisateur root à la place.
Comment tuer un processus Linux à l’aide de la commande lsof
Une autre façon de tuer un processus à l’aide d’un numéro de port sur un PC Linux consiste à utiliser la commande lsof. Cette commande peut répertorier les fichiers et les sockets ouverts sur votre système.
Pour répertorier les processus qui utilisent un numéro de port spécifique, vous pouvez utiliser la syntaxe suivante :
lsof-i protocol:port
Comme précédemment, le protocole peut être tcp ou udp, tandis que port est le numéro de port que vous souhaitez vérifier. Par exemple, pour voir quels processus utilisent le port TCP 53 (généralement utilisé pour les requêtes DNS), vous pouvez exécuter cette commande :
lsof-i tcp:53
Cela imprimera certains des informations sur chaque processus utilisant ce port, y compris son PID.
Pour tuer ces processus, vous pouvez utiliser l’option-t avec lsof. Cela n’imprimera que les PID des processus sans aucune autre information. Vous pouvez ensuite diriger cette sortie vers la commande kill avec n’importe quelle option de signal. Par exemple :
kill $(lsof-t-i tcp:53)
Cela enverra des signaux SIGTERM (par défaut) à tous les processus utilisant le port TCP 53.
Si certains processus ne répondent pas aux signaux SIGTERM comme avant, vous pouvez utiliser-9 au lieu de rien après kill. Cela enverra des signaux SIGKILL comme avant, les forçant à se terminer immédiatement mais peut également entraîner une perte ou une corruption de données. Par exemple :
kill-9 $(lsof-t-i tcp:53)
Cela enverra de force des signaux SIGKILL (par défaut) à tous les processus utilisant le port TCP 53.
Comment tuer un processus Linux à l’aide de la commande netstat
Vous pouvez également utiliser la commande netstat pour suivre les processus en cours d’exécution sur votre PC Linux à l’aide de ports réseau actifs et ouverts. netstat vous permet d’afficher les connexions réseau et les statistiques sur votre système, ce qui vous permet d’identifier les processus problématiques.
Pour répertorier les processus utilisant un numéro de port avec leurs PID, vous devez ajouter deux options :-p, qui affiche les PID, et-l, qui affiche uniquement les sockets d’écoute.
Vous devez également spécifier le protocole (tcp, udp, etc.) et éventuellement filtrer par état (LISTEN, etc.). Par exemple, pour voir quels processus TCP écoutent sur n’importe quel port, vous pouvez exécuter :
netstat-p tcp-l
Cela imprimera des informations sur chaque socket TCP écoutant sur n’importe quel port , y compris son PID.
Pour filtrer par ports spécifiques, vous devez ajouter une autre option :-n, qui affiche les adresses numériques au lieu des noms. Vous devez également spécifier le format d’adresse exact : [protocol][@hostname|hostaddr][:service|port].
Par exemple, pour voir quels processus TCP écoutent sur le port 80, vous pouvez exécuter :
netstat-p tcp-l-n 80
Cela affiche des informations sur chaque socket TCP écoutant sur le port 8080, y compris son PID.
Pour tuer ces processus, vous pouvez utiliser la commande kill avec n’importe quelle option de signal que vous voulez et les PID que vous avez obtenus de netstat. Par exemple :
kill 1234 5678
Cela enverra des signaux SIGTERM (par défaut) aux processus avec les PID 1234 et 5678.
Si certains processus ne le font pas répondre aux signaux SIGTERM comme avant, vous pouvez utiliser-9 au lieu de rien après kill. Cela enverra des signaux SIGKILL comme avant, les forçant à se terminer immédiatement mais peut entraîner une perte ou une corruption de données comme avant. Par exemple :
kill-9 1234 5678
Cela enverra des signaux SIGKILL aux processus avec les PID 1234 et 5678 avec force, par exemple. Remplacez 1234 par le PID correct pour votre processus en cours d’exécution.
Contrôlez vos applications Linux
Grâce aux étapes décrites ci-dessus, vous pouvez rapidement tuer un processus Linux en cours d’exécution à l’aide d’un numéro de port à l’aide de Linux ligne de commande. N’oubliez pas d’être prudent lorsque vous tuez des processus, en particulier avec les signaux SIGKILL, car ils peuvent provoquer des effets secondaires indésirables-vous ne voulez pas provoquer d’instabilité du système, après tout.
Vous souhaitez examiner de plus près les performances de votre système sous Linux ? Vous voudrez peut-être vérifier votre utilisation de la mémoire sous Linux ensuite. Si vous craignez un risque potentiel pour la sécurité, vous pouvez également modifier votre mot de passe sous Linux.
Besoin de passer à une nouvelle distribution Linux ? Si vous êtes débutant, considérez Linux Mint comme une alternative sûre et stable.