Go to main content

手册页部分 8:系统管理命令

退出打印视图

更新时间: 2018年8月8日 星期三
 
 

fuser(8)

名称

fuser - 识别文件和设备的用户

用法概要

/usr/sbin/fuser [-c | -d | -f] [-nu] [-k | -s sig] files 
     [ [-] [-c | -d | -f] [-nu] [-k | -s sig] files] ...

描述

fuser 实用程序显示正在使用指定为参数的 files 的进程的进程 ID。

每个进程 ID 后面跟有一个字母代码。字母代码的解释如下所述。如果进程将文件用作

c

表示此进程正在使用该文件作为其当前目录

e

表示此进程正在监视文件的各文件事件。有关更多信息,请参见 port_associate(3C) 手册页

m

表示此进程正在使用由 mmap(2) 映射的文件。有关详细信息,请参见 mmap(2)

n

表示此进程正持有针对该文件的非阻塞强制性锁定

o

表示此进程正在将该文件作为打开的文件使用

r

表示此进程正在将该文件用作其根目录

t

表示此进程正在将该文件用作其文本文件

y

表示此进程正在将该文件用作其控制终端

对于具有已挂载文件系统的块特殊设备,将列出使用该设备上的任何文件的所有进程。对于所有类型的文件(文本文件、可执行文件、目录、设备,等等),只会报告使用该文件的进程。

对于所有类型的设备,fuser 还会显示打开设备的任何已知内核使用者。内核使用者显示为下列格式之一:


[module_name]
[module_name,dev_path=path]
[module_name,dev=(major,minor)]
[module_name,dev=(major,minor),dev_path=path]

如果指定了多组文件,可能需要为其他每个文件组重新指定选项。单个短划线可取消当前施行的选项。

各个进程 ID 输出到标准输出中的单个行上,并以空格分隔。所有其他输出(包括单个终止换行符)均被写入到标准错误。

任何用户都可以运行 fuser,但只有超级用户可以终止其他用户的进程。

选项

支持以下选项:

–c

报告用作文件系统的挂载点的文件,以及该已挂载文件系统内的所有文件。

–d

报告与指定的次要节点绑定到同一设备节点的所有次要节点的设备使用信息。此选项不报告已挂载文件系统内的文件的文件使用情况

–f

为指定的文件列显报告,而不是已为挂载文件系统内的文件列显报告

–k

向每个进程发送 SIGKILL 信号。因为此选项要针对每个进程生成终止信号,因此终止消息可能不会立即显示。不会向内核文件使用者或文件事件监视器发送信号。有关更多信息,请参见 kill(2) 手册页

–l

阻止解析目标文件的符号链接

–n

只列出具有针对文件的非阻塞强制性锁定的进程

–s sig

向每个进程发送信号。sig 选项参数指定在 <signal.h> 标头中定义的符号名称之一,或者指定一个十进制整数信号编号。如果 sig 是一个符号名称,识别它时将不区分大小写,且没有 SIG 前缀。–k 选项等效于 –s KILL–s 9。不会向内核文件使用者发送信号

–u

在进程 ID 后面的圆括号中显示用户登录名。

示例

示例 1 报告挂载点和文件

以下示例将报告已挂载文件系统内的挂载点和文件。

example% fuser -c /export/foo
示例 2 在报告挂载点和文件时对输出进行限制

以下示例将报告已挂载文件系统内的挂载点和文件,但将输出限制为持有非阻塞强制性锁定的那些进程。

example% fuser -cn /export/foo
示例 3 向持有非阻塞强制性锁定的进程发送 SIGTERM

以下命令向持有针对文件 /export/foo/my_file 的非阻塞强制性锁定的所有进程发送 SIGTERM

example% fuser -fn -s term /export/foo/my_file

环境变量

有关影响 fuser 执行的环境变量 LANG、LC_ALL LC_CTYPE、LC_MESSAGES 和 NLSPATH 的说明,请参见 environ(7)

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)
标准
请参见 standards(7)

另请参见

ps(1)kill(2)mmap(2)signal(3C)attributes(7)environ(7)standards(7)mount(8)

附注

因为 fuser 使用系统映像的快照,所以它可能会漏掉在 fuser 运行期间开始使用某个文件的进程。另外,被报告为正在使用某个文件的进程在 fuser 运行期间可能已停止使用该文件。考虑到这些因素,不鼓励使用 –k 选项。