如何在 MacOS 上通过端口终止进程,例如 fuser -k 9000/tcp

如何在 MacOS 上通过端口终止进程,例如 fuser -k 9000/tcp

在 Linux 上,我只需知道一个进程正在监听的端口就可以终止该进程fuser -k 9000/tcp,那么在 MacOS 上如何做同样的事情呢?

答案1

lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9

更改PortNumber为您想要搜索的实际端口。

答案2

添加 -t 和 -i 标志可以lsof进一步加快速度,因为无需使用 grep 和 awk。

lsof -nti:NumberOfPort | xargs kill -9

lsof参数:

  • -n避免主机名查找(可能会提高性能)
  • -t简洁的输出;仅返回进程 ID,以便于将输出通过管道传输到 kill
  • -i仅选择互联网地址匹配的文件

kill参数:

  • -9不可捕捉、不可忽视的击杀

答案3

你可以通过此命令查看端口是否打开

 sudo lsof -i :8000

其中 8000 是端口号

如果端口开放,它应该返回一个包含进程 ID (PID) 的字符串。

复制此 PID 并

kill -9 PID

如果您需要查看所有开放的端口,您可以在网络实用程序应用程序中执行端口扫描。

答案4

  1. 检查端口是否打开

sudo lsof -i: {端口号}

COMMAND PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    582 Thirumal  300u  IPv6 0xf91b63da8f10f8b7      0t0  TCP *:distinct (LISTEN)

2.通过终止进程PID来关闭端口

sudo kill -9 582

相关内容