Answers:
不幸的是,在OSX上,您受困于BSD netstat
,后者不会显示附加到给定端口的进程ID。您要做的是使用lsof
。您需要使用的语法是:
lsof -i :8080
这将打印出大量信息,您不需要关心其中的大部分信息,但是这些字段都带有正确的标签。例如,查看此示例输出。
lsof -i :53237
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest 29u IPv4 0x2c3f7f95244855c3 0t0 TCP localhost:53237 (LISTEN)
这告诉我进程ID 927正在使用端口53237。读取COMMAND字段时,请记住此输出将被截断,实际上二进制文件的全名是GoogleTalkPlugin。
VBoxHeadl
要讲的很一般-有什么方法可以查看哪个VirtualBox实例(现在有两个),或者我问得太多(可能是后者)。thx
lsof -p PID
并浏览打开的文件列表,直到找到它为止。
这是我在查找侦听端口的PID时喜欢使用的东西。对于Linux使用:netstat -tunlp
其他信息可以在手册页中找到。
-p
没有列出程序的参数。我怎么看?
-p
在OSX上是port
。我讨厌开发人员为OSX和Linux做出不同论点的决定……
我netstat
在OS X上进行修改以提供此功能的过程中,偶然发现了一个事实,该事实-v
将为您提供与套接字关联的pid。
-v
增加冗余级别,它是记录在案。developer.apple.com/library/mac/documentation/Darwin/Reference/...
来自man netstat
-p,--program显示每个套接字所属的程序的PID和名称。
我通常只是这样做:netstat -antup | grep 8080
-p protocol Show statistics about protocol, which is either a well-known name
-p
显示PID的是GNU netstat命令,而OSX使用BSD netstat。
-p
没有列出程序的参数。我怎么看?
-p
在OSX上是port
。我讨厌开发人员为OSX和Linux做出不同论点的决定……