Zhigang Wang
  • Home
  • Blog
  • Wiki
  • LDP
  • Planet

查看打开文件

Last modified on 2009-12-01

查看系统中所有打开的文件,包括普通文件、设备文件、目录、套接字、管道等:

$ lsof 

查看目录dir及其下面的文件是否被系统进程访问:

$ lsof +D dir

在删除或者移动dir之前做一个这样的检查很有用处。

要查看那些进程在使用某个文件,可以使用fuser命令:

$ fuser file

这在卸载一个文件系统时特别有用。当出现下面的情形时:

# umount /dev/hda5
umount: /media/win_D: device is busy

可以先使用如下的命令:

 # fuser -m /media/win_D
 /media/win_D:         4381c

-m 告诉fuser要查看所有使用该文件所在的文件系统的进程;4381是进程号,c表示当前目录。这时你就可以知道4381号进程让你无法卸载该文件系统。使用kill命令将其杀死,就可以卸载成功了。当然,你可以使用如下的命令强制杀死所有的进程,然后卸载文件系统(比较危险,不建议这么做):

 # fuser -k -KILL -m /media/win_D && umount /media/win_D

参考资料

  1. lsof分发版本的主页。
  2. IBM developerworks上的使用 lsof 查找打开的文件。
  3. A Quick Start for Lsof,中文翻译:lsof 快速起步。
 

Categories

  • All contents
  • English contents
  • Chinese contents

Feeds

  • AtomAll contents
  • AtomEnglish contents
  • AtomChinese contents

Tags

  • gtd
  • syslog
  • twiki
  • virtualizaion
  • wiki
  • xen

Copyright © 2012 Zhigang Wang. Some right reserved.

The views expressed on this web site are my own and do not necessarily reflect the views of Oracle.