Найти процессы, прослушивающие подстановочный адрес в `lsof`

706
benizi

Используя lsof, я могу найти все процессы с сокетом TCP, прослушивающие соединения:

lsof -Pni -sTCP:LISTEN

например:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME cupsd 662 root 7u IPv6 11108 0t0 TCP [::1]:631 (LISTEN) cupsd 662 root 8u IPv4 11109 0t0 TCP 127.0.0.1:631 (LISTEN) rsyncd 905 root 4u IPv4 13379 0t0 TCP *:873 (LISTEN) ... 

Есть ли способ (без данных по конвейеру в другую программу, например grep, awkили sed), чтобы ограничить это TCP сокеты прослушивают адрес подстановочной? Пытался:

$ lsof -Pni @0.0.0.0 -sTCP:LISTEN lsof: incomplete Internet address specification: -i @0.0.0.0 

а также

$ lsof -Pni @\* -sTCP:LISTEN lsof: unknown host name (*) in: -i @* 

В качестве альтернативы, есть ли способ вообще отрицать условия, переданные lsof?

5
Похоже, ошибка в lsof для меня! Celada 11 лет назад 0

1 ответ на вопрос

1
GeoSword

Вы должны использовать lsof?

netstat -tulpnпокажет процессы, которые слушают на любом данном порту. Процессы, прослушивающие все IP, будут отображаться как 0.0.0.0:

Но эта команда также показывает процессы, которые прослушивают определенный IP, например `lsof -Pni -sTCP: LISTEN` ?! mpy 10 лет назад 0