Que pouvez-vous utiliser comme alternative «fuser -v -n tcp» sur Mac OS X

10

La commande de fusion sur Mac OS X est plutôt primitive et ne peut pas vérifier les processus d'écoute sur un port spécifique. Quelqu'un connaît-il une bonne alternative? Il suffit de savoir quel processus écoute sur ce seul port.

Martin
la source
1
Trysudo lsof -i -P
vcsjones
J'avais l'impression que lsof` ne fonctionne que lorsqu'une tâche se connecte réellement au port. De plus, il en faudrait au moins un | grep portnopour obtenir un résultat significatif.
Martin

Réponses:

14

Comme @vcsjones l'a dit dans les commentaires, lsofest l'outil pour cela:

$ 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)

Sans le -i, il affiche tous les fichiers ouverts; avec juste, -iil montre uniquement les fichiers réseau; si vous spécifiez quelque chose après le, -ivous pouvez restreindre par tout ou partie: IPv4 / 6, TCP / UDP, nom d'hôte ou IP et numéro de port / nom de service.

Gordon Davisson
la source
2
Juste au cas où cela lsof -i tcp:5000 | grep LISTEN | awk '{print $2}' | xargs kill
serait