使用 lsof
查看端口占用
-
命令格式:
sudo lsof -i :<端口号>
这个命令用于列出所有正在监听或连接到指定网络端口的进程。
-
具体示例:
sudo lsof -i :5000
-
输出解析:
- COMMAND: 表示占用该端口的程序名称。
- PID: 表示进程ID。
- USER: 表示运行该进程的用户名。
- FD: 文件描述符,表示文件在进程中的编号。
- TYPE: 文件类型,在这里为IPv4套接字。
- DEVICE: 设备号。
- SIZE/OFF: 文件大小/偏移量。
- NODE: 节点号。
- NAME: 端口名称或服务名。
-
实际输出分析:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 1511 root 18u IPv4 23332 0t0 TCP *:commplex-main (LISTEN) nginx 1514 www 18u IPv4 23332 0t0 TCP *:commplex-main (LISTEN) nginx 1515 www 18u IPv4 23332 0t0 TCP *:commplex-main (LISTEN)
- 第一列
COMMAND
显示的是 “nginx”,表明是Nginx服务器占用了5000端口。 - 第二列
PID
分别是1511、1514和1515,这些是不同Nginx工作进程的PID。 - 第三列
USER
显示了运行这些进程的用户,其中第一个进程由root用户运行,而其他两个由www用户运行。 - 其他列提供了关于每个进程更详细的网络信息。
- 第一列
总结来说,通过执行 sudo lsof -i :5000
命令,你可以看到哪些进程正在使用5000端口以及它们的相关细节。这对于排查端口冲突问题或者了解系统中某个端口被哪个应用占用非常有帮助。