Qué utilizar como alternativa "fuser -v -n tcp" en Mac OS X


10

El comando del fusor en Mac OS X es bastante primitivo y no puede verificar los procesos que escuchan en un puerto específico. ¿Alguien sabe una buena alternativa? Es suficiente saber qué proceso escucha en ese puerto.


1
Probarsudo lsof -i -P
vcsjones

Tenía la impresión de que lsof` solo funciona cuando una tarea realmente se conecta al puerto. Además, uno necesitaría al menos un | grep portnotambién para obtener un resultado significativo.
Martin

Respuestas:


14

Como @vcsjones dijo en los comentarios, lsofes la herramienta para esto:

$ sudo lsof -i tcp:80
COMMAND PID   USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
Safari  804 gordon   16u  IPv4 0x05a2cec8      0t0  TCP 192.168.6.3:50542->stackoverflow.com:http (ESTABLISHED)
httpd   874   root    3u  IPv6 0x05a2a940      0t0  TCP *:http (LISTEN)
httpd   878   _www    3u  IPv6 0x05a2a940      0t0  TCP *:http (LISTEN)

Sin el -i, muestra todos los archivos abiertos; con solo -imuestra solo archivos de red; si especifica algo después de -ilo cual puede restringir cualquiera o todos: IPv4 / 6, TCP / UDP, nombre de host o IP, y número de puerto / nombre de servicio.


2
En caso de que sea útil para alguien como yo que busca matar ciegamente todos los procesos usando un puerto dado: lsof -i tcp:5000 | grep LISTEN | awk '{print $2}' | xargs killmata todos los procesos que escuchan en el puerto 5000
JeremyKun
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.