linux查文件被哪些程序占用—fuser和lsof的使用

这种场景经常见到,比如执行umount,发现被占用,想找到被谁占用

使用fuser来查文件或目录被谁占用

fuser /proc
/proc:                2454rc
参数:-v 显示用多信息,-u 显示用户

# fuser -uv /proc
                     用户     进程号 权限   命令
/proc:               rtkit      2454 .rc.. (rtkit)rtkit-daemon
想要显示/proc目录下所有文件和目录被占用情况,加-m参数

# fuser -uvm /proc
                     用户     进程号 权限   命令
/proc:               root       1311 f.... (root)rsyslogd
                     root       1667 f.... (root)vmtoolsd
                     root       2028 f.... (root)acpid
                     haldaemon   2040 f.... (haldaemon)hald
                     root       2297 F.... (root)Xorg
                     rtkit      2454 .rc.. (rtkit)rtkit-daemon
                     root       2659 f.... (root)nautilus
                     root       2673 f.... (root)udisks-daemon
                     root       2712 f.... (root)gnome-power-man
使用删除某个PID,加-k参数,加入-i,配合-k会询问用户意愿

# fuser -ki /proc
/proc:                2454rc
杀死进程 2454 ? (y/N) n

lsof的使用

lsof列出被进程所打开的文件,直接运行,输出内容很多

加参数-u找某个用户的进程

# lsof -u root|more
COMMAND     PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
init          1 root  cwd       DIR              253,0      4096          2 /
init          1 root  rtd       DIR              253,0      4096          2 /
init          1 root  txt       REG              253,0    150352       4560 /sbi
n/init
... 
+d 参数,找某个目录被打开的文件

-a 多个条件同时成立,例如找root用户打开/proc的情况

# lsof +d /proc -a -u root
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF       NODE NAME
rsyslogd   1311 root    3r   REG    0,3        0 4026532038 /proc/kmsg
vmtoolsd   1667 root   16r   REG    0,3        0 4026532032 /proc/meminfo
vmtoolsd   1667 root   17r   REG    0,3        0 4026532033 /proc/stat
vmtoolsd   1667 root   18r   REG    0,3        0 4026532020 /proc/vmstat
Xorg       2297 root    5w   REG    0,3        0 4026531957 /proc/mtrr
udisks-da  2673 root    7r   REG    0,3        0 4026531977 /proc/mdstat
gnome-pow  2712 root   15r   REG    0,3        0 4026532033 /proc/stat
lsof      24962 root    3r   DIR    0,3        0          1 /proc
还有个参数-U ,用来列出socket文件类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

day walker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值