Linux下查看进程打开的文件与打开文件的进程
跳到导航
跳到搜索
introduce
有许多情况下,我们需要查看一个进程当前打开了哪些文件,反过来我们也希望知道某一个文件正在被哪些进程所读写。 下面介绍这两个工具:lsof与fuser。
fuser
Show which processes use the named files, sockets, or filesystems. 使用文件或文件结构识别进程 常用选项 -m 如果指定一个文件,则所有访问那个文件所在文件系统的进程都会被列出来 -n type 指定不同的文件类型,默认类型为file,此外还支持tcp和udp类型,此时可以简写作port/tcp -u 显示进程属主 -v 显示详细进程与打开文件信息 fuser -mvu /data #查看哪些进程在访问/data挂载分区 inland125: USER PID ACCESS COMMAND /data: root 14133 ..c.. (root)mysqld_safe root 14140 ..c.. (root)mysqld_safe mysql 15513 F.... (mysql)mysqld 于是从pid入手 就可以知道哪个进程的详情了 要终止使用给定文件系统的所有进程,请输入: fuser -k -x -u -c /dev/hd1
lsof
常用选项 -i [46] [proto] [@hostname|ip][:service|port] 用来选择占用某个端口的进程 实例5:列出某个用户打开的文件信息 命令: lsof -u username 说明: -u 选项,u其实是user的缩写 实例6:列出某个程序进程所打开的文件信息 命令: lsof -c mysql