Що ви використовуєте як альтернативу "fuser -v -n tcp" на Mac OS X


10

Команда Fuser в Mac OS X досить примітивна і не може перевірити прослуховування процесів на певному порті. Хтось знає хорошу альтернативу? Для цього достатньо знати, який процес прослуховування на цьому одному порту.


1
Спробуйтеsudo lsof -i -P
vcsjones

У мене було враження, що lsof` працює лише тоді, коли завдання фактично підключається до порту. Окрім того, | grep portnoдля отримання значущого результату потрібен буде хоча б атрибут.
Мартін

Відповіді:


14

Як сказав @vcsjones в коментарях, lsofце інструмент для цього:

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

Без цього -iвоно показує всі відкриті файли; лише -iпоказує мережеві файли; якщо ви вказуєте щось після цього, -iви можете обмежити будь-який або всі: IPv4 / 6, TCP / UDP, ім'я хоста або IP, а також номер порту / ім'я послуги.


2
На випадок, якщо хтось, як я, корисний, щоб сліпо вбити всі процеси за допомогою даного порту: lsof -i tcp:5000 | grep LISTEN | awk '{print $2}' | xargs killвбиває всі процеси, слухаючи порт 5000
JeremyKun
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.