Bạn sử dụng cái gì để thay thế Fuser -v -n tcpv trên Mac OS X


10

Lệnh fuser trên Mac OS X khá nguyên thủy và không thể kiểm tra các quá trình nghe trên một cổng cụ thể. Có ai biết một sự thay thế tốt? Nó đủ để biết quá trình nghe trên một cổng đó.


1
Hãy thửsudo lsof -i -P
vcsjones

Tôi có ấn tượng rằng lsof` chỉ hoạt động khi một tác vụ thực sự kết nối với cổng. Bên cạnh đó, người ta sẽ cần ít nhất | grep portnolà tốt để có được một kết quả có ý nghĩa.
Martin

Câu trả lời:


14

Như @vcsjones đã nói trong các bình luận, lsoflà công cụ cho việc này:

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

Không có -i, nó hiển thị tất cả các tệp đang mở; chỉ với -inó chỉ hiển thị các tập tin mạng; nếu bạn chỉ định một cái gì đó sau khi -ibạn có thể hạn chế bởi bất kỳ hoặc tất cả: IPv4 / 6, TCP / UDP, tên máy chủ hoặc IP và số cổng / tên dịch vụ.


2
Chỉ trong trường hợp nó hữu ích cho những người như tôi đang tìm cách tiêu diệt một cách mù quáng tất cả các quy trình bằng một cổng nhất định: lsof -i tcp:5000 | grep LISTEN | awk '{print $2}' | xargs killgiết chết tất cả các quy trình lắng nghe trên cổng 5000
JeremyKun
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.