¿Cómo matar un proceso que se ejecuta en un puerto particular en Linux?

Intenté cerrar el tomcat usando ./shutdown.sh desde el directorio tomcat /bin . Pero descubrió que el servidor no se cerró correctamente. Y así no pude reiniciar
Mi gato se está ejecutando en el puerto 8080 .

Quiero matar el proceso de Tomcat ejecutándose en 8080 . Primero quiero tener la lista de procesos ejecutándose en un puerto específico (8080) para seleccionar qué proceso matar.

Este fuser 8080/tcp imprimirá su PID del proceso vinculado en ese puerto.

Y este fuser -k 8080/tcp matará ese proceso.

Funciona solo en Linux. Más universal es el uso de lsof -i4 (o 6 para IPv6).

Para enumerar cualquier proceso que escuche el puerto 8080:

 lsof -i:8080 

Para matar cualquier proceso que escuche el puerto 8080:

 kill $(lsof -t -i:8080) 

o más violentamente

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

Usa el comando

  sudo netstat -plten |grep java 

usó grep java como tomcat usa java como sus procesos.

Mostrará la lista de procesos con el número de puerto y la identificación del proceso

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

el número anterior /java es una identificación de proceso. Ahora usa el comando kill para matar el proceso

 kill -9 16085 

-9 implica que el proceso será matado con fuerza.

Puedes usar el comando lsof. Deje que el número de puerto como aquí sea 8090

 lsof -i:8090 

Este comando devuelve una lista de procesos abiertos en este puerto.

Algo como…

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

Para liberar el puerto, elimine el proceso utilizándolo (la identificación del proceso es 75782) …

 kill -9 75782 

Éste trabajó para mí. aquí está el enlace de la publicación original: enlace

Agregaría este one-liner solo para ESCUCHAR en un puerto específico:

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

Si desea matar un proceso que se ejecuta en el puerto número 8080, primero debe encontrar el número de identificación del proceso (PID) del puerto 8080 y luego cancelarlo. Ejecute el siguiente comando para encontrar el número de puerto PID 8080:

 sudo lsof -t -i:8080 

Aquí,

  • sudo – comando para pedir privilegios de administrador (identificación de usuario y contraseña).
  • lsof – lista de archivos (también se usa para enumerar procesos relacionados)
  • -t – mostrar solo ID de proceso
  • -i : muestra solo el proceso relacionado con las conexiones a Internet
  • : 8080 – muestra solo los procesos en este número de puerto

Entonces ahora puede matar fácilmente su PID usando el siguiente comando:

 sudo kill -9  

Aquí,

  • kill – command para matar el proceso
  • -9 – con fuerza

Puede usar un comando para matar un proceso en un puerto específico usando el siguiente comando:

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

Para más información, puede ver el siguiente enlace Cómo matar un proceso en un puerto específico en Linux

Esto imprime para extender los ID de proceso de todo lo que se ejecuta en :

 fuser -n tcp  

También imprime algunas cosas en stderr, así que:

 fuser -n tcp  2> /dev/null 

A continuación, podemos suministrar estos id. De proceso al comando kill :

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

También puedes poner esto en una función si lo haces mucho:

 function killport() { sudo kill $(fuser -n tcp $1 2> /dev/null) } 

Para saber el pid de servicio que se ejecuta en un puerto particular:

 netstat -tulnap | grep :*port_num* 

obtendrá la descripción de ese proceso. Ahora usa kill o kill -9 pid. Fácilmente asesinado.

p.ej

netstat -ap | grep :8080

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

Ahora:

 kill -9 1880 

Recuerde ejecutar todos los comandos como root

prueba así,

  sudo fuser -n tcp -k 8080 
  1. lsof -i tcp:8000 Este comando enumera la información sobre el proceso que se ejecuta en el puerto 8000

  2. kill -9 [PID] Este comando mata el proceso

Linux : puedes usar este comando si conoces el puerto:

 netstat -plten | grep LISTEN | grep 8080 

AIX :

 netstat -Aan | grep LISTEN | grep 8080 

A continuación, toma la primera columna (ejemplo: f100050000b05bb8) y ejecuta el siguiente comando:

 rmsock f100050000b05bb8 tcpcb 

proceso de matanza.

Linux : Primero puedes encontrar el PID de este comando si conoces el puerto:

 netstat -tulpn 

ejemplo:-

  Local Address Foreign Address State PID/Program name :::3000 :::* LISTEN 15986/node 

Luego tomas el proceso de matar. ejecuta el siguiente comando:

matar -9 PID

Expample: –

matar -9 15986

kill -9 `fuser 8080/tcp|xargs -n 1` , este comando también elimina el proceso que escucha en el puerto 8080 con conexión TCP

para construir sobre lo que dijo @ veer7 :

si quieres saber qué hay en el puerto, hazlo antes de matarlo.

 $ 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 

Use ‘ps’ y el número del proceso que reportó netstat.

 sudo apt-get install psmisc (or sudo yum install psmisc) sudo fuser 80/tcp 

Resultado: 80 / tcp: 1858 1867 1868 1869 1871

Matar proceso uno por uno

matar -9 1858

En Windows, será netstat -ano | grep "8080" netstat -ano | grep "8080" y obtenemos el siguiente mensaje TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076

Podemos matar el PID usando taskkill /F /PID 10076