Fuser¶
fuser 命令用于显示正在访问指定文件,文件系统,或 unix socket 的进程 PID。 在默认显示模式下,每个文件名后跟一个表示访问类型的字母:
c 当前目录.
e 正在运行.
f 打开文件。 默认显示模式中省略f。
F 打开文件为了写入。 在默认显示模式下,F被省略。
r 根目录.
m mmap的文件或共享库.
语法¶
fuser [OPTIONS] name
-a, –all 显示在命令行中指定的所有文件。 默认情况下,只显示至少一个进程访问的文件。
-k, –kill 杀死访问文件的进程。
-i, –interactive 在杀死一个进程之前请求用户确认。 如果-k不存在,则此选项将被忽略。
-l, –list-signals 列出所有已知的信号名称。
-m NAME, –mount NAME 显示使用指定的文件系统或块设备的所有进程
-M, –ismountpoint 仅当指定挂载点时,请求才会被执行,可以防止你杀死机器。
-w 仅杀死具有写权限的进程。 如果-k不存在,则此选项将被忽略。
-n SPACE, –namespace SPACE 选择一个不同的名字空间(file, udp, tcp)。
-s, –silent 安静模式
-SIGNAL 发送指定信号替代SIGKILL
-u, –user 将进程所有者的用户名追加到每个 PID 边上。
-v, –verbose 详细模式.
示例¶
显示访问了该目录的进程
fuser -v /opt/jupyterlab/
USER PID ACCESS COMMAND
/opt/jupyterlab: lfzyx 96365 ..c.. bash
root 123165 ..c.. sudo
root 123166 ..c.. su
root 123167 ..c.. bash
root 125752 ..c.. jupyterhub
root 125758 ..c.. node
显示访问了该文件系统或块设备的进程
fuser -v -m /mnt
fuser -v -m /dev/sdb1
USER PID ACCESS COMMAND
/dev/sdb1: root kernel mount /mnt
root 93433 F.... mount.ntfs
lfzyx 109588 ..c.. bash
lfzyx 110408 F.c.. md5sum
lfzyx 110421 F.c.. md5sum
fuser 命令也可用于检测使用网络端口的进程
fuser -v -n tcp 8000
USER PID ACCESS COMMAND
8000/tcp: root 125758 F.... node
杀死正在访问该文件系统或网络端口的进程
fuser -k -m /mnt
fuser -k 123/tcp