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