调试的时候通过查看进程或系统打开的文件能给调试带来极大的帮助,而lsof 命令能显示 Linux 系统当前已打开的所有文件列表。lsof (list open files)命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP),还可以用于找回/恢复被删除的文件。lsof 命令需要访问核心内存和各种文件,只有root权限用户才能执行此命令。本文地址:http://www.04007.cn/article/1149.html,未经许可,不得转载.
[test@server /] lsof lsof: command not found [test@server /] yum install lsof -y Installing: lsof x86_64 4.82-4.el6 base 319 k [test@server /] # lsof -i 6 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 824 root 4u IPv6 23534 0t0 TCP *:ssh (LISTEN)lsof命令的常用选项。
-a #显示打开文件的进程
-i<条件> #输出符合条件的进程
-c<进程名> #显示指定进程所打开的文件
-p<进程号> #输出指定进程号所打开的文件
-g #显示GID号进程详情
-d<文件号> #显示占用该文件号的进程
+d<目录> #显示目录下被打开的文件
+D<目录> #递归列出目录下被打开的文件
-U #获取UNIX套接口地址本文地址:http://www.04007.cn/article/1149.html,未经许可,不得转载.
使用lsof命令能显示 Linux 系统当前已打开的所有文件列表。
lsof -i #显示所有连接
lsof -i 6 #只显示IPV6的连接
lsof -i 4 #只显示IPV4的连接
lsof -i tcp #仅显示TCP的连接
lsof -i udp #仅显示UDP的连接
lsof -i :80 #显示指定端口的连接
lsof -u root#列由显示某用户打开的进程或文件
lsof -i@192.168.64.47 #显示指定到指定主机的连接
lsof -i@192.168.64.47:52762 #显示指定到指定主机端口的连接本文地址:http://www.04007.cn/article/1149.html,未经许可,不得转载.
lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
PGID:进程所属组(需要指定-R参数)
FD:文件描述符本文地址:http://www.04007.cn/article/1149.html,未经许可,不得转载.
FD表示文件描述符,有cwd,rtd,txt,mem等几种类型,cwd代表当前目录,rtd代表根目录,txt代表执行的程序,mem代表映射到内存的文件(一般都是动态链接库)。其它的0u代表的文件描述符为0,而255u代表的文件描述符为255,u的意思为可读可写。TYPE为文件类型,常见的文件类型(1)DIR:表示目录,(2)CHR:表示字符类型,(3)BLK:块设备类型,(4)UNIX: UNIX 域套接字,(5)FIFO:先进先出 (FIFO) 队列,(6)IPv4:网际协议套接字。本文地址:http://www.04007.cn/article/1149.html,未经许可,不得转载.
如果说ps命令是横向并列查看各个进程列表的话,lsof命令可以认为是ps的补充,是查看进程的详情,是纵向查看一个进程运行时涉及到的各个程序、目录、文件、端口等详细信息。lsof命令可以非常方便地查找某个进程使用了哪些文件,包括执行文件、日志文件、程序文件路径等。比如有的进程在相对目录中启动后我们不能直观地看到它的执行路径,这时就可以使用lsof命令对这个进程进行跟踪,如果对于nginx进程,可以使用lsof -c nginx(进程名)查看所有nginx名的进程涉及的文件,要指定nginx,可以使用lsof -p 进程号 来查看。本文地址:http://www.04007.cn/article/1149.html,未经许可,不得转载.
最后在知道了某些进程或者用户涉及了哪些文件之后,我们可以使用下面的命令来批量结束那些我们不需要或者非法的程序。命令如下:
[test@server /] # kill -9 `lsof -u nginx`本文地址:http://www.04007.cn/article/1149.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1149.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |