[关闭]
@cdmonkey 2017-03-02T10:18:40.000000Z 字数 2328 阅读 1202

fuser

命令总结


http://www.ha97.com/1030.html
http://czmmiao.iteye.com/blog/1733722
https://www.howtoing.com/how-to-use-the-linux-fuser-command

指令说明

fuser - identify processes using files or sockets

上面的字面意思是使用文件或套接字识别进程。就是说该指令能够显示出当前哪个程序正使用硬盘上的某个文件、挂载点、甚至网络端口,并给出对应进程的详细信息。

两个常用功能:查看我需要的进程及我要杀死我查到的进程。

指令语法

  1. fuser [-a|-s|-c] [-4|-6] [-n space ] [-k [-i] [-signal ] ] [-muvf] name ...
  2. fuser -l
  3. fuser -V

常用选项

option explain
-a 显示所有于命令行上指定的文件。缺省情况下,只显示至少由一个进程访问的文件。
-c -m选项,用于POSIX兼容。
-k 发送“SIGKILL”信号到每个本地进程。仅有根用户能终止另一用户的进程。
-i 要求用户于杀死指定进程前进行确认。若没有-k选项,则该选项会被忽略掉。
-l 列出全部已知的信号名。
-m 指定一个文件系统内的文件或者一个已经挂载的块设备。
-n 选择一个不同的命名空间。支持不同的空间文件(文件名,缺省)、本地TCP端口及本地UDP端口。
-s 静默模式。其中-u-v选项将被忽略,而-a不能同该选项一起使用。
-SIGNAL 发送该信号,用于替换掉“SIGKILL”信号。
-u 于每个PID后面显示进程拥有者的用户名称。
-v 详细输出模式。而-V则显示版本信息。
-4 使用IPV4套接字,不能同-6一起使用,只在使用-nTCPUDP的命名存在时不被忽略。
-6 使用IPV6套接字,不能同-4一起使用,只在使用-nTCPUDP的命名存在时不被忽略。

使用示例

  1. # List available signal names:
  2. [root@yum-server ~]# fuser -l
  3. HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
  4. STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
  5. UNUSED

显示占用指定文件或设备的进程

缺省的情况下每个文件名后面跟一个字母表示访问类型。

  1. # Show all processes using the named filesystems:
  2. [root@yum-server ~]# fuser -m /var/www/html
  3. /var/www/html: 10445c 10446c
  1. [root@yum-server ~]# fuser -um /dev/sda3
  2. /dev/sda3: 1rce(root) 2rc(root) 3rc(root) 4rc(root) 5rc(root)...1625rce(root) 1627rce(root) 1629rce(root) 1903re(root)...23908rce(apache) 27962rce(root) 27967rce(root) 27973rc(root) 27974rc(root) 27975rc(root) 27976rc(root)...28000rce(zabbix) 28002rce(zabbix) 28003rce(zabbix) 28004rce(zabbix) 28005rce(zabbix) 28006rce(zabbix) 28021rce(root)...
  3. 29705rce(apache) 29706rce(apache) 29707rce(apache) 31109rce(root) 31177rce(root)

这个命令于umount的时候很有用,能够找到还有哪些进程占用到这个设备了。该指令会显示使用指定文件或者文件系统的进程号,且每个进程号后面都跟有一个字母,用来显示进程如何使用文件:

查看使用指定端口的进程

  1. [root@yum-server ~]# fuser -v -n tcp 80
  2. USER PID ACCESS COMMAND
  3. 80/tcp: apache 774 F.... httpd
  4. root 27223 F.... httpd
  5. apache 27225 F.... httpd
  6. apache 27226 F.... httpd
  7. apache 27227 F.... httpd
  8. ...
  9. # Can also use the command below:
  10. [root@yum-server ~]# fuser -v 80/tcp

上面执行结果中的ACCESS表示进程对文件的访问类型。

杀掉打开指定文件的进程

  1. [root@yum-server ~]# fuser -m -k -i readme

显示更加详细的信息

  1. [root@yum-server ~]# fuser -mv /var/www/html/index.html
  2. USER PID ACCESS COMMAND
  3. /var/www/html/index.html:
  4. root 1903 ..c.. mysqld_safe
  5. apache 23908 ....m httpd
  6. apache 29637 ....m httpd
  7. apache 29638 ....m httpd
  8. apache 29646 ....m httpd
  9. apache 29654 ....m httpd
  10. ...

常用指令文档

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注