Mac OS X 上的 fuser 命令相当原始,无法检查特定端口上正在监听的进程。有人知道一个好的替代方案吗?知道哪个进程正在监听该端口就足够了。
答案1
正如 @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 以及端口号/服务名称。