gpt4 book ai didi

macos - 如何查询一个进程正在使用的端口,知道它的名称或 pid 在 mac 上?

转载 作者:行者123 更新时间:2023-12-01 09:07:57 25 4
gpt4 key购买 nike

我想查询一个进程正在使用的端口,我知道使用ps aux | grep <name regex of process>的进程的pid ,但我不知道如何获取它正在使用的端口。在linux上,我们可以使用netstat -anp | grep <pid> ,但是该命令在mac上不起作用,它会抛出这样的提示:

netstat: option requires an argument -- p
Usage: netstat [-AaLlnW] [-f address_family | -p protocol]
netstat [-gilns] [-f address_family]
netstat -i | -I interface [-w wait] [-abdgRtS]
netstat -s [-s] [-f address_family | -p protocol] [-w wait]
netstat -i | -I interface -s [-f address_family | -p protocol]
netstat -m [-m]
netstat -r [-Aaln] [-f address_family]
netstat -rs [-s]

看起来它需要一个参数 -p指定协议(protocol)的类型,但我不想也不知道类型,那么如何解决我的问题,谢谢!

这是 Mac 上的一个问题,很容易检查,所以我希望所有的答案都能在你的 mac 机器上测试你的解决方案。也许答案不是单一的,所以我在等待你不同但有用的答案。谢谢大家谁注意这个问题。

最佳答案

在 OS X 上,您可以使用 -v 获取持有端口的进程的 PID。转变。 -v开关实际上打开了包含 PID 的详细输出。

如果您使用 netstat -anp在 Linux 上,我相信你应该能够在 OS X 上使用 netstat -anv 获得类似的结果.

如果您只对 inet 端口感兴趣,那么您可以使用:

netstat -anvf inet

或 TCP 套接字:
netstat -anvp tcp

或 UDP 套接字:
netstat -anvp udp

仅返回特定 PID 的 TCP 条目,例如 PID == 86您可以通过管道输出 netstat通过 awk :
netstat -anvp tcp | awk '{ if ($9 == 86) print }'

netstat 的详细输出中PID 在第九列,因此测试 $9 == 86 .

关于macos - 如何查询一个进程正在使用的端口,知道它的名称或 pid 在 mac 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36443485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com