Cómo matar un proceso por puerto en MacOS, a la fuser -k 9000 / tcp

14

En Linux puedo matar un proceso conociendo solo el puerto que está escuchando fuser -k 9000/tcp, ¿cómo hago lo mismo en MacOS?

Kris
fuente

Respuestas:

19
lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9

Cambie PortNumberal puerto real que desea buscar.

stefano
fuente
2
Solo tuve que agregar -9hasta el final para que esto funcione, pero creo que se debe a la naturaleza de la aplicación de escucha y no a la práctica generalmente recomendada kill -9.
Kris
@Kris - lsof -P | grep ': NumberOfPort' | awk '{print $ 2}' | xargs kill -9 funcionó!
ases.
11

Agregar los indicadores -t e -i a lsof debería acelerarlo aún más al eliminar la necesidad de grep y awk.

lsof -nti:NumberOfPort | xargs kill -9
Zlemini
fuente
2
¡Funciona y es más conciso que la respuesta aceptada!
Big Rich
1
MUCHO más rápido con este enfoque
daleyjem
2

Agregue -n a lsof y elimine la búsqueda inversa de DNS del comando y reduzca el tiempo de ejecución de minutos a segundos.

lsof -Pn | grep ':NumberOfPort' | awk '{print $2}' | xargs kill -9
stevehollx
fuente
1
  1. Verifique que su puerto esté abierto o no

sudo lsof -i: {PORT_NUMBER}

COMMAND PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    582 Thirumal  300u  IPv6 0xf91b63da8f10f8b7      0t0  TCP *:distinct (LISTEN)

2. Cierre el puerto matando el PID del proceso

sudo kill -9 582
Thirumal
fuente
1

Puede ver si un puerto está abierto por este comando

 sudo lsof -i :8000

donde 8000 es el número de puerto

Si el puerto está abierto, debería devolver una cadena que contiene la ID de proceso (PID).

Copie este PID y

kill -9 PID

Si necesita ver todos los puertos abiertos, puede realizar un Escaneo de puertos en la aplicación Network Utility.

rohanharikr
fuente
0

Puede usar kill -9 $(lsof -i:PORT -t) 2> /dev/null, donde PORT es su número de puerto real. Eliminará el proceso que se ejecuta en su puerto dado.

Epk
fuente
Estás repitiendo otra respuesta
yass