Comment tuer un processus tournant sur un port particulier de Linux?

j'ai essayé de fermer le tomcat en utilisant ./shutdown.sh du répertoire /bin de tomcat. Mais il a constaté que le serveur n'était pas correctement fermé. Et donc je n'ai pas pu redémarrer

mon tomcat tourne sur le port 8080 .

je veux tuer le processus tomcat qui tourne sur 8080 . Je veux d'abord avoir la liste des processus tournant sur un port spécifique (8080) afin de sélectionner le processus à tuer.

414
demandé sur ROMANIA_engineer 2012-07-20 20:39:17

16 réponses

ce fuser 8080/tcp vous imprimera PID de processus lié sur ce port.

et ce fuser -k 8080/tcp tuera ce processus.

fonctionne sur Linux seulement. Plus universel est l'utilisation de lsof -i4 (ou 6 pour IPv6).

617
répondu nudzo 2016-01-29 23:12:12

pour lister n'importe quel processus écoutant le port 8080:

lsof -i:8080

Pour tuer tous les processus de l'écoute sur le port 8080:

kill $(lsof -t -i:8080)

ou plus violemment:

kill -9 $(lsof -t -i:8080)

( -9 correspond au signal SIGKILL - terminate immediately/hard kill : voir List of Kill Signals et Quel est le but de l'option -9 dans la commande kill? . Si aucun signal n'est spécifié pour kill , le TERME de signal.k.un. -15 ou soft kill est envoyé, ce qui n'est pas assez pour tuer un processus.).

336
répondu Franck Dernoncourt 2018-09-20 11:54:25

utiliser la commande

 sudo netstat -plten |grep java

utilise grep java comme tomcat utilise java comme leurs procédés.

il affichera la liste des processus avec le numéro de port et le numéro de processus

tcp6       0      0 :::8080                 :::*                    LISTEN      
1000       30070621    16085/java

le numéro avant /java est un numéro de processus. Maintenant, utilisez la commande kill pour tuer le processus

kill -9 16085

-9 implique que le processus sera tué avec force.

196
répondu veer7 2017-11-15 08:36:12

Vous pouvez utiliser la commande lsof. Laissez le numéro de port comme ici est 8090

lsof -i:8090

cette commande renvoie une liste des processus ouverts sur ce port.

quelque chose comme ...

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)

pour libérer le port, tuer le processus en l'utilisant (le numéro du processus est 75782) ...

kill -9 75782

celui-ci travaillait pour moi. voici le lien de l'original post: lien

92
répondu Kop4lyf 2015-02-25 10:54:46

j'ajouterais cette doublure pour écouter uniquement sur un port spécifique:

kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)

67
répondu Gal Bracha 2017-01-22 13:44:48

si vous voulez tuer un processus tournant sur le numéro de port 8080, vous devez d'abord trouver le numéro d'identification du processus de port 8080(PID) et ensuite le tuer. Exécutez la commande suivante pour trouver le numéro de port 8080 PID:

sudo lsof -t -i:8080

ici,

  • sudo - commande pour demander le privilège admin(id utilisateur et mot de passe).
  • lsof - liste des fichiers procédés connexes)
  • - t - afficher seulement le numéro D'identification du procédé
  • - i - afficher seulement les connexions internet processus lié
  • :8080 - afficher seulement les processus dans ce numéro de port

ainsi vous pouvez maintenant facilement tuer votre PID en utilisant la commande suivante:

sudo kill -9 <PID>

ici,

  • tuez - commande de tuer le processus
  • -9-avec vigueur

vous pouvez utiliser une commande pour tuer un processus sur un port spécifique en utilisant la commande suivante:

sudo kill -9 $(sudo lsof -t -i:8080)

pour plus vous pouvez voir le lien suivant Comment tuer un processus sur un port spécifique de linux

45
répondu mahfuz110244 2018-05-18 12:29:52

cela imprime pour stdout les ids de processus de tout ce qui fonctionne sur <port_number> :

fuser -n tcp <port_number> 

Il imprime aussi des trucs à stderr, donc:

fuser -n tcp <port_number> 2> /dev/null

nous pouvons ensuite fournir ces codes de processus à la commande kill :

sudo kill $(fuser -n tcp <port_number> 2> /dev/null)

, Vous pouvez aussi mettre cela dans une fonction si vous le faites beaucoup:

function killport() {
    sudo kill $(fuser -n tcp  2> /dev/null)
}
36
répondu Brian Peterson 2014-11-04 19:03:21

pour connaître le pid de service courant sur un port particulier:

netstat -tulnap | grep :*port_num*

, vous obtiendrez la description de ce processus. Maintenant, utilisez kill ou kill -9 pid. Facilement tués.

E. g

netstat -ap | grep :8080

tcp6       0      0 :::8080       :::*    LISTEN      1880/java 

Maintenant:

kill -9 1880

N'oubliez pas d'exécuter toutes les commandes comme root

29
répondu Sanjay s. 2015-07-31 12:09:15

essayez comme ceci,

 sudo fuser -n tcp -k 8080
16
répondu Adil Abbasi 2015-06-26 11:15:46
  1. lsof -i tcp:8000 Cette commande LISTE les informations sur le processus en cours d'exécution dans le port 8000

  2. kill -9 [PID] Cette commande tue le processus

11
répondu Nandhitha Ramaraj 2016-07-05 15:12:22

Linux : Vous pouvez utiliser cette commande si vous connaissez le port :

netstat -plten | grep LISTEN | grep 8080

AIX :

netstat -Aan | grep LISTEN | grep 8080

vous prenez ensuite la première colonne (exemple: f100050000b05bb8) et exécutez la commande suivante:

rmsock f100050000b05bb8 tcpcb

procédé de mise à mort.

9
répondu ben rhouma moez 2014-08-12 07:14:14

Linux : tout D'abord, vous pouvez trouver PID de cette commande si vous connaissez le port:

netstat -tulpn 

exemple: -

 Local Address  Foreign Address  State    PID/Program name

  :::3000       :::*             LISTEN    15986/node 

vous prenez alors le processus de mise à mort. exécutez la commande suivante:

kill -9 PID

Expample: -

kill -9 15986

8
répondu Kundan Kumar 2018-03-07 13:12:03

kill -9 `fuser 8080/tcp|xargs -n 1` , cette commande tue également le processus qui écoute sur le port 8080 avec connexion TCP

6
répondu Harshit Garg 2017-05-22 05:59:54

pour construire sur ce que @ veer7 a dit:

si vous voulez savoir ce qu'il y avait sur le port, faites-le avant de le tuer.

$ sudo netstat -plten |grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1000       906726      25296/java      
tcp6       0      0 :::8009                 :::*                    LISTEN      1000       907503      25296/java      
tcp6       0      0 :::8080                 :::*                    LISTEN      1000       907499      25296/java      
$ ps 25296
  PID TTY      STAT   TIME COMMAND
25296 ?        Sl     0:16 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Dcatalina.base=/hom

utilisez "ps" et le numéro du processus que netstat a rapporté

0
répondu JesseBoyd 2017-10-12 02:15:15
sudo apt-get install psmisc (or sudo yum install psmisc)
sudo fuser 80/tcp

résultat: 80 / tcp: 1858 1867 1868 1869 1871

Tuer le processus un par un

kill -9 1858

0
répondu Fadid 2018-06-04 15:44:00

dans Windows, il sera netstat -ano | grep "8080" et nous obtenons le message suivant TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076

nous pouvons tuer le PID en utilisant taskkill /F /PID 10076

-2
répondu Chaklader 2016-12-20 08:36:42