Linux lsof
约 683 字大约 2 分钟
2025-01-11
介绍
一般我们启动或部署服务的时候,都会先检查端口是否被占用,这时就需要使用lsof命令来查询。
lsof是一个功能强大的实用程序,可用于基于Linux和Unix的系统,字面意思是打开文件列表。其主要功能是检索由不同运行进程打开的各种类型文件的详细信息。这些文件可以是普通文件、目录、块文件、网络套接字、命名管道等。
其他类似指令
netstat:用于显示网络连接、路由表、接口统计等网络信息。ss:用于显示套接字统计信息,类似于netstat,但更高效。fuser:用于查找和终止使用指定文件或目录的进程。lsof:用于列出打开的文件和进程,以及它们的相关信息。
安装
在Ubuntu上安装lsof命令:
$ sudo apt-get install lsof在CentOS上安装lsof命令:
$ sudo yum install lsof在Mac上安装lsof命令:
$ brew install lsof在Windows上安装lsof命令:
$ choco install lsof使用
查询端口是否被占用
使用lsof来查询端口是否被占用命令如下:
$ lsof -i:端口号当端口未被占用时,不会显示任何内容。
$ lsof -i:8000提示 没有输出内容,说明端口未被占用。
如果端口被占用,则会输出占用该端口的进程的详细信息。
lsof -i:3001
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 83245 matias 22u IPv4 0x4814689d674d2cf4 0t0 TCP *:redwood-broker (LISTEN)如上,我们可以看到,端口3001被node进程占用,进程ID为83245。
$ lsof -i :3080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Google 1232 matias 18u IPv6 0xe4de0c9eff93d877 0t0 TCP localhost:63484->localhost:stm_pproc (CLOSE_WAIT)
Google 1232 matias 30u IPv6 0xc8eaa4c35190e67 0t0 TCP localhost:49776->localhost:stm_pproc (ESTABLISHED)
com.docke 1499 matias 11u IPv6 0xa56b7dcce0023e25 0t0 TCP localhost:stm_pproc->localhost:63484 (FIN_WAIT_2)
com.docke 1499 matias 19u IPv6 0x743ab5fd11f1f98c 0t0 TCP localhost:stm_pproc->localhost:49776 (ESTABLISHED)
com.docke 1499 matias 264u IPv6 0xfeb379d52a485fcc 0t0 TCP *:stm_pproc (LISTEN)*:stm_pproc显示的是服务名称,*表示所有IP地址,stm_pproc表示服务名称。
lsof通过 /etc/services 把服务名 stm_pproc 解析成 3080,并匹配输入的 :3080,所以显示的是 *:stm_pproc。如果要显示端口号,可以使用 -P 选项:
$ lsof -i :3080 -P
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Google 1232 matias 20u IPv6 0xe4de0c9eff93d877 0t0 TCP localhost:63539->localhost:3080 (CLOSE_WAIT)
Google 1232 matias 30u IPv6 0xc8eaa4c35190e67 0t0 TCP localhost:49776->localhost:3080 (ESTABLISHED)
com.docke 1499 matias 11u IPv6 0xa56b7dcce0023e25 0t0 TCP localhost:3080->localhost:63539 (FIN_WAIT_2)
com.docke 1499 matias 19u IPv6 0x743ab5fd11f1f98c 0t0 TCP localhost:3080->localhost:49776 (ESTABLISHED)
com.docke 1499 matias 264u IPv6 0xfeb379d52a485fcc 0t0 TCP *:3080 (LISTEN)参考
版权所有
版权归属:matiastang
许可证:Copyright © 2022-present tangdaoyong
