本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1334367,如需转载请自行联系原作者 从他的名字就能看书这个工具的用途:查询给定文件或目录的用户或进程信息;
lsof也具备类似的功能,它也能够找出正在对指定文件访问的进程,两者的区别是fuser在于它可以一次杀死那些正在访问指定文件的进程。
fuser常用的场合是:
fuser可用于查询文件、目录、socket端口和文件系统的使用进程,并且可以使用fuser关闭进程。
当文件系统umount报device busy时,常用到fuser查询并关闭使用相应文件系统的进程。(在DRBD切换的时候可以用到哦);
使用方式:
<a target="_blank" href="http://blog.51cto.com/attachment/201311/232553252.png"></a>
基本上使基本上用-v 可以显示大部分内容:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/122545157.png"></a>
/root 目录下的使用者,进程ID,PID后面的c代表进程的工作目录,后面是具体的命令;
access还有其他选项:
e:该文件为进程的可执行文件;
f:该文件被进程打开,默认f不显示;
F:该文件被进程打开,并写入,默认F不显示;
r:表示该目录为进程的根目录;
m:表示进程使用该文件进行内存映射,或者该文件为共享库文件,被进程映射至内存;
对socket端口使用者的情况进行查询:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/123311854.png"></a>
查看某文件系统的使用情况:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/123821254.png"></a>
kill掉对某个文件正在访问的进程:
fuser是对相关进程发送SIGKILL信号。除了发送SIGKILL信号之外,fuser还可以发送以下信号:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/124135782.png"></a>
fuser -v -k filename;
要结束所有对某文件系统进行访问的进程:
fuser -ck /data (某文件系统挂载的目录);