Bootstrap

【linux】(21)进程端口排查-fuser

fuser 是一个用于显示进程使用的文件、套接字或端口的 Linux 命令。它可以帮助诊断某个文件、目录、端口或设备被哪个进程占用。


基本语法

fuser [选项] 文件或端口

常用选项

选项说明
-a显示所有指定文件或端口的进程信息。
-k杀死占用指定文件或端口的进程。
-i在杀死进程前询问用户确认。
-l列出所有信号名称。
-m显示挂载点上的所有进程(适用于目录或挂载点)。
-n指定空间(例如 tcpudp),用于网络端口。
-u显示用户(用户 ID)信息。
-v详细模式。
-V显示版本信息。
-s安静模式,不显示错误消息。

常见用法示例

1. 检查哪个进程在使用文件

fuser /path/to/file

说明:显示占用该文件的进程 ID。

2. 检查哪个进程在使用某个端口

fuser -n tcp 80

说明:显示占用 TCP 80 端口的进程。

3. 杀死占用某个文件的进程

fuser -k /path/to/file

说明:强制终止占用该文件的所有进程。

4. 杀死占用端口的进程(带确认)

fuser -ki -n tcp 8080

说明:终止占用 TCP 8080 端口的进程,并在杀死进程前提示用户确认。

5. 显示用户信息

fuser -u /path/to/file

说明:显示占用该文件的进程和用户信息。

6. 查看某个挂载点的占用情况

fuser -m /mnt/my_mount

说明:显示挂载点 /mnt/my_mount 上的所有进程。

7. 详细输出

fuser -v /path/to/file

说明:详细显示每个进程的信息,包括用户、进程 ID 和访问类型。


fuser 命令输出说明

fuser 的输出通常包含以下信息:

  • 进程 ID(PID):使用该文件或端口的进程的标识号。
  • 访问类型标志
    • c:当前目录。
    • e:正在执行的文件。
    • f:打开的文件。
    • F:打开的文件(用于 -m 参数)。
    • r:根目录。
    • m:映射的文件或共享库。

注意事项

  1. 权限问题:普通用户只能查看自己拥有的进程;要查看其他用户的进程,通常需要使用 sudo
  2. 强制终止进程:使用 -k 选项时要小心,可能会影响系统稳定性,尤其是在终止系统关键进程时。
  3. 网络端口占用:在诊断网络服务问题时,fusernetstatss 结合使用效果更好。
;