跳到主要内容

mac下查找端口是否占用及关闭占用端口进程

· 阅读需 2 分钟
一介布衣
全栈开发者

如何查找某个端口是否被占用:

我们查找下 3009 端口当前被谁占用

zhangzhi@moke:~/code/work$ lsof -i:3009

结果显示:

COMMAND   PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node 14937 zhangzhi 19u IPv4 0xc7e40c3b908f5c71 0t0 TCP *:pxc-ntfy (LISTEN)

可以看到一个node进程占用了 3009 端口.

如何关闭此进程:

zhangzhi@moke:~/code/work$ kill -9 14937

ok,这样就结束了占用 3009 端口的进程.

什么时候这个命令最有用

最典型的场景就是本地起服务时报 “address already in use”,或者你明明把终端关了,但端口还是没释放。这个时候先查端口、再找到进程,比盲目重启机器高效得多。

kill -9 不是唯一选项

如果进程只是普通占用,有时候先试试更温和的 kill PID 就够了,只有在进程不响应或者顽固不退出时,再使用 kill -9。因为 -9 属于强制终止,虽然直接,但也不会给程序留下清理资源的机会。

所以更稳的习惯是:先查占用,再判断进程性质,最后决定用哪种方式结束。