Linux系统使用Fuser命令的方法

什么是Fuser命令?

fuser命令是一个非常聪明的unix实用程序,用于查找正在使用某个文件、目录或socket的进程。 它还提供有关拥有该进程的用户和访问类型的信息。。fuser工具显示了使用指定文件或文件系统的每个进程的进程ID(PID)。

安装

如果你的精简版运行fuser提示如下信息:

-bash: fuser: command not found

请执行如下命令安装:

[winbert@winbert-server ~]$ sudo yum -y install psmisc

如何使用fuser命令?

man命令可用于查看任何命令的帮助手册,但是学习新知识(尤其是linux命令)的最佳方法是通过阅读真实的示例,并且不断地在终端中键入命令。 在终端中运行以下命令,以获取有关fuser实用程序的使用选项的信息。

[winbert@winbert-server ~]$ fuser
No process specification given
Usage: fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...
  fuser -l
  fuser -V
Show which processes use the named files, sockets, or filesystems.

 -a,--all    display unused files too
 -i,--interactive  ask before killing (ignored without -k)
 -k,--kill    kill processes accessing the named file
 -l,--list-signals  list available signal names
 -m,--mount   show all processes using the named filesystems or block device
 -M,--ismountpoint  fulfill request>如何查看使用某个目录的进程

fuser序可以与-v选项一起使用,该选项以详细模式运行该工具。 verbose选项用于在计算机屏幕上生成详细输出,因此用户可以实时查看实用程序正在执行的操作。

[winbert@winbert-server ~]$ fuser -v .
      USER  PID ACCESS COMMAND
/home/winbert:  winbert 1435 ..c.. bash

上面的输出显示,以详细模式运行时,fuser会提供有关USERPIDACCESSCOMMAND的信息。 ACCESS下的c字符表示访问类型,表示“当前目录”。 访问类型很多,例如e(正在运行的可执行文件),r(根目录),f(打开文件。在默认显示模式下省略f),F(用于写入的打开文件,在默认显示模式下省略F)和 m(mmap文件或共享库)。

查看使用你tcp或udp套接字的进程?

有时您需要使用TCP和UDP套接字查找进程。 为了查找这些进程,需要使用-n选项。 -n选项用于选择相应的名称空间。

[root@huidukongjian-h4 docker]# fuser -v -n tcp 80
      USER  PID ACCESS COMMAND
80/tcp:    root  27411 F.... docker-proxy

默认情况下,fuser将同时在IPv6和IPv4套接字中查找,但是可以使用-4-6选项更改默认选项。 -4选项代表IPv4-6选项代表IPv6。 请注意,fuser仅将PID输出到stdout,其他所有内容都发送到stderr。

fuser -v -n tcp 80命令的结果显示,使用docker的进程的进程ID为27411,而用于启动该进程的命令为docker-proxy。 进程ID(PID)可以以多种方式使用,其中之一是进程终止。 与PID一起使用时,kill命令根据该进程ID终止进程。 fuser还可用于终止访问特定文件的进程。 在以下命令中,-k选项用于终止正在使用在端口123上运行的tcp侦听器的进程。为确保用户不会杀死错误的进程,使用-i选项询问用户是否 在终止进程之前进行确认。

fuser -k  123/tcp

使用带有-i选项的fuser -k命令在终止进程之前要求用户进行确认。 用户可以用y回答“是”,或者用N回答不杀死进程。

fuser -i -k 123/tcp
123/tcp:    12216
Kill process 12216 ? (y/N)
Use The -6 Option To Look For IPv6 Sockets.

以下命令以详细模式使用fuser,并尝试查找在端口123上运行的IPv6套接字。

fuser -v -n tcp -6 123

查找占用某个文件系统的进程

-m选项可与fuser命令一起使用,以查找访问文件文件系统上文件的进程。 此选项需要文件名作为输入参数。 -m选项非常有用,尤其是当用于发现正在访问文件系统的进程并标识要杀死的进程时。

Linux系统使用Fuser命令的方法

扫一扫手机访问