在Mac OS X上用作“ fuser -v -n tcp”替代品的内容


10

Mac OS X上的fuser命令相当原始,无法检查在特定端口上侦听的进程。有人知道一个好的选择吗?知道哪个进程在该端口上侦听就足够了。


1
试试sudo lsof -i -P
vcsjones 2010年

我的印象是lsof`仅在任务实际连接到端口时才起作用。此外,至少还需要一个| grep portno才能获得有意义的结果。
马丁2010年

Answers:


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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.