Jestem na laptopie OS X Mountain Lion i mam na sobie kilka Vagrantowych pudełek. Próbuję dowiedzieć się, który proces nasłuchuje na porcie 8080. Moje odmiany produkują jak sto linii, ale żaden nie ma określonego numeru portu. Zakładam coś takiego:
netstat -XXX | grep 8080
networking
macos
netstat
opóźnienie
źródło
źródło
Odpowiedzi:
Niestety w OSX utknąłeś z BSD,
netstat
która nie pokaże ci ID procesu dołączonego do danego portu. Zamiast tego musisz użyćlsof
. Należy użyć następującej składni:Spowoduje to wydrukowanie mnóstwa informacji, z których większość nie ma znaczenia, ale pola są dobrze oznaczone. Na przykład sprawdź to przykładowe wyjście.
To mówi mi, że port 53237 jest używany przez identyfikator procesu 927. Podczas odczytywania pola COMMAND należy pamiętać, że dane wyjściowe są obcinane, w rzeczywistości pełna nazwa pliku binarnego to GoogleTalkPlugin.
źródło
VBoxHeadl
- czy jest jakiś sposób, aby zobaczyć, która instancja VirtualBox (mam teraz dwie), czy też pytam o wiele za dużo (prawdopodobnie to drugie). thxlsof -p PID
przeglądać listę otwartych plików, aż go znajdziesz.Tego właśnie lubię używać, gdy szukam PID portu nasłuchującego. W przypadku systemu Linux:
netstat -tunlp
Dodatkowe informacje można znaleźć na stronach podręcznika man.
źródło
-p
nie wyświetla argumentów programu. Jak to widzę?-p
na OSX jestport
. Nienawidzę decyzji programistów, by przedstawiać różne argumenty dla OSX i Linuksa ...Byłem w trakcie modyfikacji
netstat
OS X, aby zapewnić tę funkcję, i natknąłem się na fakt, że-v
da ci pid związany z gniazdem.źródło
-v
Zwiększa poziom oznajmiania i jest udokumentowane. developer.apple.com/library/mac/documentation/Darwin/Reference/…Dla mnie następujące dwie linie najlepiej sprawdzają się, które aplikacje mają otwarte porty nasłuchiwania, a tunel, lsof jest w pełni wieloplatformowy:
źródło
Aby znaleźć konkretny port, użyj polecenia netstat
źródło
Od man netstat
-p, --program Pokazuje PID i nazwę programu, do którego należy każde gniazdo.
Zwykle po prostu to robię: netstat -antup | grep 8080
źródło
-p protocol Show statistics about protocol, which is either a well-known name
-p
Wyświetlenie PID jest poleceniem GNU netstat, podczas gdy OSX używa BSD netstat.-p
nie wyświetla argumentów programu. Jak to widzę?-p
na OSX jestport
. Nienawidzę decyzji programistów, by przedstawiać różne argumenty dla OSX i Linuksa ...Poniższe polecenie pokazuje połączenie:
Aby wyświetlić pełny przepływ w czasie rzeczywistym, możesz użyć
watch
:źródło