En Linux puedo matar un proceso conociendo solo el puerto que está escuchando fuser -k 9000/tcp
, ¿cómo hago lo mismo en MacOS?
14
lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9
Cambie PortNumber
al puerto real que desea buscar.
-9
hasta 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 recomendadakill -9
.Agregar los indicadores -t e -i a lsof debería acelerarlo aún más al eliminar la necesidad de grep y awk.
fuente
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.
fuente
2. Cierre el puerto matando el PID del proceso
fuente
Puede ver si un puerto está abierto por este comando
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
Si necesita ver todos los puertos abiertos, puede realizar un Escaneo de puertos en la aplicación Network Utility.
fuente
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.fuente