如何在 MacOS 上通过端口杀死进程,a la fuser -k 9000/tcp

Kri*_*ris 19 kill port process macos

在 linux 上,我可以杀死一个只知道它正在侦听的端口的进程fuser -k 9000/tcp,我如何在 MacOS 上做到这一点?

小智 30

lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

Change PortNumber to the actual port you want to search for.

  • 我只需要在末尾添加 `-9` 才能使其工作,但我相信这是由于听力应用程序的性质而不是通常推荐的做法,即 `kill -9`。 (2认同)

小智 18

lsof通过消除对 grep 和 awk 的需要,添加 -t 和 -i 标志应该可以进一步加快速度。

lsof -nti:NumberOfPort | xargs kill -9
Run Code Online (Sandbox Code Playgroud)

lsof 论据:

  • -n 避免主机名查找(可能会导致更快的性能)
  • -t简洁的输出;仅返回进程 ID 以方便通过管道将输出杀死
  • -i 仅选择 Internet 地址匹配的文件

kill 论据:

  • -9 不可捕获,不可忽视的杀戮

  • 有效并且比接受的答案更简洁! (3认同)
  • 使用这种方法更快 (3认同)