lsof(list open files)
lsof(list open files)是一个列出当前系统打开文件的工具,可以查看端口占用情况。
查看端口占用
lsof -i
netstat -an|grep 端口号
查看应用的监听端口
lsof -i -P -n |grep LISTEN
/home/afa >lsof -i -P -n |grep LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 107934 afa 248u IPv6 29533384 0t0 TCP *:9004 (LISTEN)
java 108319 afa 415u IPv6 29533470 0t0 TCP *:9051 (LISTEN)
java 108319 afa 418u IPv6 29533471 0t0 TCP *:9031 (LISTEN)
java 108319 afa 420u IPv6 29533475 0t0 TCP 10.150.5.184:6666 (LISTEN)
java 108319 afa 421u IPv6 29533476 0t0 TCP *:11088 (LISTEN)
java 109138 afa 364u IPv6 29504031 0t0 TCP *:9151 (LISTEN)
java 109138 afa 365u IPv6 29504032 0t0 TCP *:11188 (LISTEN)
java 109138 afa 366u IPv6 29504033 0t0 TCP *:9131 (LISTEN)
lsof输出各列信息的意义如下:
COMMAND:执行程序的命令 java应用程序显示为java
PID: process ID,进程标识符,
USER:进程所有者,即执行命令的用户
FD:file descriptor,进程独有的文件描述符表的索引,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,这里是端口号,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识),这里是监听的类型
NAME:打开文件的确切名称,这里是监听的端口号
FD:最大打开文件描述符个数
可以通过 cat /proc/sys/fs/file-max
或者 sysctl -a | grep fs.file-max
命令查看
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文件
本文链接:https://my.lmcjl.com/post/6646.html
展开阅读全文
4 评论