terminar puertos puerto procesos proceso matar liberar linux unix port kill-process

linux - procesos - matar puertos en windows



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

  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

Intenté cerrar el tomcat utilizando ./shutdown.sh del directorio tomcat /bin . Pero encontró que el servidor no estaba cerrado correctamente. Y así no pude reiniciar
Mi gato se está ejecutando en el puerto 8080 .

Quiero matar el proceso tomcat que se ejecuta en 8080 . Primero quiero tener la lista de procesos que se ejecutan en un puerto específico (8080) para seleccionar qué proceso matar.


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

NOSOTROS podemos matar el PID usando taskkill /F /PID 10076


Este fuser 8080/tcp imprimirá su PID del proceso enlazado 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).


Esto imprime a la salida estándar de los identificadores de proceso de todo lo que se ejecuta en <port_number> :

fuser -n tcp <port_number>

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

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

Entonces podemos suministrar estos identificadores de proceso al comando kill :

sudo kill $(fuser -n tcp <port_number> 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 listar cualquier proceso escuchando el puerto 8080:

lsof -i:8080

Para matar cualquier proceso escuchando el puerto 8080:

kill $(lsof -t -i:8080)

o más violentamente:

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

( -9 corresponde a SIGKILL - terminate immediately/hard kill señal de SIGKILL - terminate immediately/hard kill forzada: consulte la Lista de señales de SIGKILL - terminate immediately/hard kill y ¿Cuál es el propósito de la opción -9 en el comando de eliminación? ... Si no se especifica ninguna señal para kill , la señal TERM, también conocida como -15 o se envía un soft kill , que a veces no es suficiente para matar un proceso).


Puedes usar el comando lsof. Deja el número de puerto como aquí es 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 usándolo (la identificación del proceso es 75782) ...

kill -9 75782

Este funcionó para mí. Aquí está el enlace de la publicación original: link


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

sudo lsof -t -i:8080

Aquí,

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

Así que ahora puedes matar fácilmente tu PID usando el siguiente comando:

sudo kill -9 <PID>

Aquí,

  • matar - comando para matar el proceso
  • -9 - a la 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 eliminar un proceso en un puerto específico en Linux


Usa el comando

sudo netstat -plten |grep java

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

Mostrará la lista de procesos con número de puerto e ID de proceso.

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

el número antes de /java es un id de proceso. Ahora usa el comando kill para matar el proceso

kill -9 16085

-9 implica que el proceso será matado a la fuerza.


Yo agregaría esta frase única para solo ESCUCHAR en un puerto específico:

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


para construir sobre lo que dijo @ :

Si quieres saber qué había en el puerto, haz esto 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 netstat informó


prueba de esta manera,

sudo fuser -n tcp -k 8080


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


Linux : primero puede encontrar el PID de este comando si conoce el puerto:

netstat -tulpn

ejemplo:-

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

Entonces tomas el proceso de matar. ejecute el siguiente comando:

matar -9 PID

Ejemplo: -

matar -9 15986


Linux : puede usar este comando si conoce el puerto:

netstat -plten | grep LISTEN | grep 8080

AIX :

netstat -Aan | grep LISTEN | grep 8080

Luego toma la primera columna (ejemplo: f100050000b05bb8) y ejecuta el siguiente comando:

rmsock f100050000b05bb8 tcpcb

proceso de matanza.


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

Recuerda ejecutar todos los comandos como root


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