lsof 查看端口占用
lsof
是一个 shell 指令,用于列出当前系统打开的文件。
lsof
查看端口占用的语法格式如下:
lsof -i:[端口号]
在 Linux 上需要 root 权限,而 MacOS 上不需要。
例:查看电脑 4000 端口的占用情况:
% lsof -i:4000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 64950 qry 42u IPv6 0x71ca5fa9e8b96e4d 0t0 TCP *:terabase (LISTEN)
可以发现 4000 端口已经被 nodejs 服务占用(其实是我博客的本地调试端口)
输出信息的意义如下:
其他 lsof 的命令如下:
lsof -i:8080 # 查看 8080 端口的占用
lsof abc.txt # 显示开启文件 abc.txt 的进程
lsof -c abc # 显示 abc 进程现在打开的文件
lsof -c -p 1234 # 列出进程号为 1234 的进程所打开的文件
lsof -g gid # 显示归属 gid 的进程情况
lsof +d /usr/local/ # 显示目录下被进程开启的文件,
lsof +D /usr/local/ # 同上,但是会搜索所有子文件夹内的文件
lsof -d 4 # 显示使用 FD 为 4 的进程
lsof -i -U # 显示所有打开的端口和 UNIX domain 文件
在查到端口占用的进程后,如果你要杀掉对应的进程,可以用以下指令
kill -9 [PID]