GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tuer le processus Linux en cours d'exécution sur un port particulier

Sous Linux, les processus et les ports ont une relation symbiotique. L'un ne peut exister ni fonctionner sans l'autre. Les processus ont tendance à partager des ports et certains processus s'appuient sur un port spécifique pour atteindre un objectif du système d'exploitation.

Ce guide d'article vous explique comment libérer un port utilisé par un processus afin de l'utiliser sur un autre processus.

Comment répertorier un port avec son processus associé

Si vous pouvez répertorier un port ciblé et un processus PID , vous pouvez tuer le processus qui lui est associé. Il existe plusieurs outils que vous pouvez utiliser pour répertorier les ports activement utilisés sous Linux.

Une recommandation ou une approche plus flexible consiste à utiliser la commande de statistiques réseau (netstat) ou la commande ss (plus rapide que netstat ). Il s'agit d'une installation par défaut dans la plupart des distributions Linux, mais vous pouvez l'installer avec la commande suivante si elle n'est pas présente.

Installer Netstat et la commande SS sous Linux

$ sudo apt-get install net-tools iproute   [On Debian/Ubuntu & Mint] 
$ sudo dnf install net-tools iproute       [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
$ pacman -S netstat-nat iproute            [On Arch Linux]
$ emerge sys-apps/net-tools iproute        [On Gentoo]
$ sudo dnf install net-tools iproute       [On Fedora]
$ sudo zypper install net-tools iproute    [On openSUSE]

Pour répertorier un port et savoir s'il est verrouillé sur un processus ou un service particulier, respectez la règle de syntaxe suivante.

$ sudo netstat -ltnp | grep -w ':[targeted_port]'
OR
$ ss -ltnp | grep -w ':[targeted_port]'

Par exemple, processus ou services écoutant le port 80 peuvent être répertoriés de la manière suivante.

$ sudo netstat -ltnp | grep -w ':80'
OR
$ ss -ltnp | grep -w ':80'

Sous la chaîne de commande "netstat -ltnp ”, l'option -p pointe vers 1520 qui est le PID du processus que vous souhaitez tuer. Prenez-en note.

Comment créer un processus factice sous Linux

Afin de ne pas gâcher l'écosystème de votre système d'exploitation Linux, nous allons créer des processus factices et les utiliser pour démontrer l'objectif de cet article. Nous utiliserons le "socat "Utilitaire de ligne de commande pour créer nos processus de démonstration.

Prenons trois processus sous SCTP , TCP , et UDP protocoles respectivement. Nous allons lier ces nouveaux processus à un port aléatoire comme 9999 .

La commande suivante générera un processus temporaire avec un PID (ID de processus ) de 8695 .

$ socat sctp-listen:9999,bind=127.0.0.1 stdout &

La commande suivante générera un processus temporaire avec un PID (ID de processus) de 9080 .

$ socat tcp-listen:9999,bind=127.0.0.1 stdout &

La commande suivante générera un processus temporaire avec un PID (ID de processus) de 9270 .

$ socat udp-listen:9999,bind=127.0.0.1 stdout &

Comment tuer un processus avec son PID (ID de processus)

Utiliser le "kill -9" commande, nous pouvons nous débarrasser d'un processus qui détient en otage un numéro de port que nous voulons utiliser sur un autre processus prioritaire. Dans ce cas, nous avons créé trois processus avec les PID 8695 , 9080 , et 9270 .

Pour tuer le processus sous le PID 8695 , j'ai exécuté la commande suivante :

$ kill -9 8695

Nous pouvons même tuer plus d'un processus à la fois. Pour tuer les processus créés avec les PID 9080 et 9270 , utilisez une commande similaire à celle-ci :

$ kill -9 9080 9270

Que vous tuiez un processus ou plusieurs processus en même temps, l'exécution de la commande kill devrait conduire à une instance de terminal vide comme illustré ci-dessus.

Pour confirmer que les processus ne sont plus actifs, nous allons essayer de relancer la commande kill :

$ kill -9 8695

Un message d'erreur indiquera que le processus n'est plus actif. En outre, les deux processus récemment tués [2] 9080 et [3] 9270 sont présentés comme n'étant plus actifs.

Remarque finale

Les règles pour tuer un processus en cours d'exécution sont simples. Tout d'abord, identifiez le port que vous souhaitez utiliser via le "netstat ” ou “ss” commande, puis notez le PID attaché au processus. Enfin, utilisez le "kill -9" commande avec le PID identifié pour se débarrasser de ce processus.


Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment redémarrer (ou réinitialiser) un processus en cours d'exécution sous Linux ?

  3. Comment tuer un processus exécuté sur un port spécifique sous Linux ?

  4. Comment tuer un processus en cours d'exécution sur un port particulier sous Linux ?

  5. Tuer le processus en cours d'exécution sur le port 80

Comment répertorier les processus en cours d'exécution sous Linux :guide du débutant

Comment tuer un processus sous Linux

Commande Kill sous Linux

Comment tuer les processus Zombie sous Linux

Comment trouver et tuer les processus en cours d'exécution sous Linux

Comment tuer un processus sous Linux