当我在终端中运行此命令时:
lsof-n-i4TCP:8081
我明白了
node 10901 me 28u IPv6 0xbcad49 0t0 TCP *:sunproxyadmin (LISTEN)
foo 11957 me 15u IPv4 0xbcad49 0t0 TCP 127.0.0.1:61127->127.0.0.1:sunproxyadmin (CLOSE_WAIT)
这是什么sunproxyadmin?
当我在终端中运行此命令时:
lsof-n-i4TCP:8081
我明白了
node 10901 me 28u IPv6 0xbcad49 0t0 TCP *:sunproxyadmin (LISTEN)
foo 11957 me 15u IPv4 0xbcad49 0t0 TCP 127.0.0.1:61127->127.0.0.1:sunproxyadmin (CLOSE_WAIT)
这是什么sunproxyadmin?
每http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=8081个端口中,TCP端口8081是sunproxyadmin的众所周知的端口,就像80是http的众所周知的端口一样.在本例中,您有一个 node 进程正在侦听端口8081,但lsof试图提供帮助,并为此显示众所周知的端口.在linux下,这是在/etc/services中定义的;我认为OSX也是如此.
编辑1:注意每Apple Man Pages次,通过-P
次
禁止将网络文件的端口号转换为端口名
这将导致lsof无法打印出令人困惑的sunproxyadmin,因为它恰好使用了Sun注册的端口.
编辑2:您的回复中的第二列(例如,第一行中的10901是您想要的,第二行中的11957)应该是流程ID.如果您 Select ps aux | grep 10901
(或ps elf | grep [pid]
,因为我不记得哪一个适合OSX,也不方便使用),您应该得到如下信息:
apache 19783 0.0 0.2 251888 8580?2008年10月7日0:00
(或编造:
nodeuser 10901 0.0 0.2 25188 8580?S Oct07 0:00 node 索引.js
)
You can kill it with kill -9 10901
(or whatever the PID was) though you might find it comes back if it's running as a service or what.
这非常有用,可以添加到bash配置文件中:
function findbyport()
{
sudo lsof -P -iTCP:$1 -sTCP:LISTEN
}