Avez-vous déjà rencontré une situation dans laquelle vous devez arrêter un processus qui s'exécute sur un port spécifique de votre machine Linux ?
Vous craignez peut-être qu'une application que vous exécutez se comporte mal ou accapare les ressources de votre réseau ou la puissance du processeur local. Une telle application pourrait même constituer une menace de sécurité que vous souhaitez éliminer.
Quelle que soit la raison, vous pouvez utiliser les commandes fuser,lsofet netstatdepuis le terminal (avec kill) pour vous aider à trouver et à tuer tout processus Linux à l'aide d'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 consiste à utiliser la commande fuser. Ce Commande de terminal Linux peut lister 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 effectue 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 :
port de protocole fuser -n
Dans cet exemple, protocolepeut être tcpou udp, tandis que portest le numéro de port souhaité. 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 correctement. 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 -KILLau lieu de -k. Cela enverra un signal d'arrêt (SIGKILL), qui peut aider à forcer la fin immédiate des processus en cours d'exécution que vous avez identifiés. Cependant, cela peut entraîner une perte ou une corruption de données, alors utilisez-le avec prudence. Par exemple:.
fuseur -KILL -n tcp 80
Cela tuera de force tous les processus utilisant le port TCP 80. Si vous rencontrez des problèmes, exécutez ces commandes en tant que superutilisateur (à 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 commandelsof. Cette commande peut répertorier les fichiers et sockets ouverts sur votre système.
Pour lister les processus qui utilisent un numéro de port spécifique, vous pouvez utiliser la syntaxe suivante :
lsof -i protocole :port
Comme auparavant, protocolepeut être tcpou udp, tandis que portest 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 des informations sur chaque processus utilisant ce port, y compris son PID.
Pour tuer ces processus, vous pouvez utiliser l'option-taveclsof. Cela imprimera uniquement les PID des processus sans aucune autre information. Vous pouvez ensuite diriger cette sortie vers la commande killavec 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 -9au lieu de rien après kill. Cela enverra des signaux SIGKILL comme avant, les forçant à se terminer immédiatement, mais pourrait également entraîner une perte ou une corruption de données. Par exemple :
kill -9 $(lsof -t -i tcp:53)
Cela enverra de force les 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 netstatpour 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, vous permettant ainsi d'identifier les processus problématiques.
Pour répertorier les processus utilisant un numéro de port ainsi que leurs PID, vous devez ajouter deux options : -p, qui affiche les PID, et -l, qui affiche prises d'écoute uniquement..
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 imprimera des informations sur chaque socket TCP écoutant sur le port 8080, y compris son PID.
Pour tuer ces processus, vous pouvez utiliser la commande killavec n'importe quelle option de signal de votre choix et les PID que vous avez obtenus auprès de netstat. Par exemple :
tuer 1234 5678
Cela enverra des signaux SIGTERM (valeur par défaut) aux processus avec les PID 1234et 5678.
Si certains processus ne répondent pas aux signaux SIGTERM comme avant, vous pouvez utiliser -9au lieu de rien après kill. Cela enverra des signaux SIGKILL comme avant, les forçant à se terminer immédiatement mais pourrait entraîner une perte ou une corruption de données comme auparavant. Par exemple :
tuer -9 1234 5678
Cela enverra des signaux SIGKILL aux processus avec les PID 1234et 5678avec force, par exemple. Remplacez 1234par 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 arrêter un processus Linux en cours d'exécution à l'aide d'un numéro de port à l'aide de la ligne de commande Linux. N'oubliez pas de faire preuve de prudence lorsque vous interrompez des processus, en particulier avec les signaux SIGKILL, car ils peuvent provoquer des effets secondaires indésirables : après tout, vous ne voulez pas provoquer une instabilité du système.
Vous souhaitez examiner de plus près les performances de votre système sous Linux ? Vous souhaiterez peut-être vérifiez votre utilisation de la mémoire sous Linux ensuite. Si vous craignez un risque de sécurité potentiel, vous pouvez également changez votre mot de passe sous Linux.
Besoin de passer à une nouvelle distribution Linux ? Si vous êtes débutant, pensez à Linux Mint une alternative sûre et stable..
.