WEB开发网
开发学院操作系统Linux/Unix 使用 lsof 查找打开的文件 阅读

使用 lsof 查找打开的文件

 2006-08-26 08:12:16 来源:WEB开发网   
核心提示:通过查看打开的文件,了解更多关于系统的信息,使用 lsof 查找打开的文件,了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,作为系统管理员,如清单 1 所示,因为 lsof 需要访问核心内存和各种文件,这将使得您能够作出更好的决策,例如

通过查看打开的文件,了解更多关于系统的信息。了解应用程序打开了哪些文件或者哪个应用程序打开了特定的文件,作为系统管理员,这将使得您能够作出更好的决策。例如,您不应该卸载具有打开文件的文件系统。使用 lsof,您可以检查打开的文件,并根据需要在卸载之前中止相应的进程。同样地,如果您发现了一个未知的文件,那么可以找出到底是哪个应用程序打开了这个文件。

在 UNIX® 环境中,文件无处不在,这便产生了一句格言:“任何事物都是文件”。通过文件不仅仅可以访问常规数据,通常还可以访问网络连接和硬件。在有些情况下,当您使用 ls 请求目录清单时,将出现相应的条目。在其他情况下,如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字,不存在相应的目录清单。但是在后台为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。

因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,所以能够查看这个列表将是很有帮助的。完成这项任务的实用程序称为 lsof,它对应于“list open files”(列出打开的文件)。几乎在每个 UNIX 版本中都有这个实用程序,但奇怪的是,大多数供应商并没有将其包含在操作系统的初始安装中。要获取更多关于 lsof 的信息,请参见参考资料部分。

lsof 简介

只需输入 lsof 就可以生成大量的信息,如清单 1 所示。因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

清单 1. lsof 的示例输出

bash-3.00# lsof
COMMAND  PID  USER  FD  TYPE    DEVICE SIZE/OFF   NODE NAME
sched    0  root cwd  VDIR     136,8   1024     2 /
init     1  root cwd  VDIR     136,8   1024     2 /
init     1  root txt  VREG     136,8  49016   1655 /sbin/init
init     1  root txt  VREG     136,8  51084   3185 /lib/libuutil.so.1
vi    2013  root  3u VREG     136,8    0   8501 /var/tmp/ExXDaO7d
...

1 2 3 4 5 6  下一页

Tags:使用 lsof 查找

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接