Was Sie als "Fixiereinheit -v -n tcp" -Alternative unter Mac OS X verwenden

10

Der Befehl fuser unter Mac OS X ist eher primitiv und kann nicht nach Prozessen suchen, die einen bestimmten Port überwachen. Kennt jemand eine gute Alternative? Es reicht zu wissen, welcher Prozess an diesem einen Port lauscht.

Martin
quelle
1
Versuchen Siesudo lsof -i -P
vcsjones
Ich hatte den Eindruck, dass lsof` nur funktioniert, wenn eine Aufgabe tatsächlich mit dem Port verbunden ist. Außerdem würde man mindestens ein | grep portnoauch brauchen , um ein aussagekräftiges Ergebnis zu erzielen.
Martin

Antworten:

14

Wie @vcsjones in den Kommentaren sagte, lsofist das Werkzeug dafür:

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

Ohne das -iwerden alle geöffneten Dateien angezeigt. mit nur -izeigt es nur Netzwerkdateien; Wenn Sie nach dem etwas angeben, -ikönnen Sie Folgendes einschränken: IPv4 / 6, TCP / UDP, Hostname oder IP sowie Portnummer / Dienstname.

Gordon Davisson
quelle
2
Nur für den Fall, dass es für jemanden wie mich nützlich ist, alle Prozesse blind über einen bestimmten Port lsof -i tcp:5000 | grep LISTEN | awk '{print $2}' | xargs kill
abzubrechen