fuser命令使用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fuser命令使用方法相关的知识,希望对你有一定的参考价值。

问题

  1、如何查找使用指定文件系统、目录或者文件的进程并将它们kill掉?

  2、如何解决umount挂载点时出现device is busy的问题?

解决方法

  使用fuser命令可以解决该问题。fuser的主要功能可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。常用于解决umount挂载点时出现device is busy的情况。

1、显示使用/home文件系统的进程信息

fuser -umv /home  # -u在每个PID后面添加进程拥有者的用户名称;-m name 指定一个挂载文件系统上的文件或者被挂载的dev设备;-v 详细模式

2、杀掉使用/home/test.txt文件的进程信息

fuser -km /home/test.txt #-k 杀掉访问文件的进程

 引申

  fuser命令其他参数使用方法参考如下

-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。  
-c 和-m一样,用于POSIX兼容。  
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。  
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。  
-l 列出所有已知的信号名称。  
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。  
-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口, 可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。  
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。  
-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。  
-u 在每个PID后面添加进程拥有者的用户名称。  
-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.  -V 输出版本号。  
-4 使用IPV4套接字,不能和-6一起应用,只在-n的tcp和udp的命名存在时不被忽略。  
-6 使用IPV6套接字,不能和-4一起应用,只在-n的tcp和udp的命名存在时不被忽略。  
- 重置所有的选项,把信号设置为SIGKILL.  

 

参考文档:

(1)http://czmmiao.iteye.com/blog/1733722

以上是关于fuser命令使用方法的主要内容,如果未能解决你的问题,请参考以下文章

fuser 命令小结

fuser命令使用方法

关于linux命令大全里没有fuser

fuser -v /dev/nvidia*卡死的替代方法

fuser命令

yum install fuser提示没有可用软件包