fuser命令主要作用是查看进程使用的文件和套接字。它可以显示出当前哪个程序在占用磁盘上的某一个文件、挂载点和网络端口,并给出程序进程详细信息。它还能显示使用指定文件或文件系统的进程ID号。
它可以帮助管理员找出哪个进程正在使用某个资源,从而解决诸如“无法卸载文件系统”、“文件被占用无法删除”等问题。
语法:fuser [参数] [文件/目录/端口]
常用参数说明:
选项 | 说明 |
-a, --all | 显示所有指定的文件/目录(即使没有被任何进程占用也显示) |
-v, --verbose | 详细模式,显示进程的详细信息(PID、USER、COMMAND 等) |
-l, --list-signals | 列出所有可用的信号名称 |
-V, --version | 显示版本信息 |
-h, --help | 显示帮助信息 |
-m, --mount | 显示所有访问指定文件系统(挂载点)上的文件的进程 |
-u, --user | 显示进程的所属用户名 |
-n, --namespace SPACE | 指定命名空间,可选file(文件)、udp(UDP端口)、tcp(TCP端口) |
-k, --kill | 向占用资源的进程发送SIGKILL 信号(杀死进程) |
-i, --interactive | 在杀死进程前进行交互确认(需配合-k 使用) |
-s, --silent | 静默模式,不输出任何错误信息(仅用于检查退出状态码) |
-SIGNAL | 指定发送的信号名称(如-TERM、-HUP),需配合 -k 使用 |
三、命令用法
1、查看占用文件的进程
[root@CentOS7 proc]# fuser /etc/passwd/etc/passwd: 4325
[root@CentOS7 proc]# fuser -v /etc/passwd 用户 进程号 权限 命令/etc/passwd: root 4325 f.... cupsd
ACCESS(权限)一列说明:
c:当前目录
e:可执行文件正在运行
f:打开的文件(普通文件)
F:打开并正在写入的文件
r:根目录
m:映射文件(如共享库)
3、查看占用挂载点的进程
[root@CentOS7 proc]# fuser -v /app 用户 进程号 权限 命令/app: root kernel mount /app
这个可以用于文件系统卸载前检查使用,如果提示“device is busy”,可以找出哪些进程导致无法正常卸载。
4、查看指定挂载点下所有文件的占用进程
[root@CentOS7 proc]# fuser -v -m /app 用户 进程号 权限 命令/app: root kernel mount /app
“-m”这个参数会扫描整个文件系统,找出所有访问该文件系统上所有文件的进程。
5、查看点用TCP端口的进程
[root@CentOS7 proc]# fuser -v -n tcp 22 用户 进程号 权限 命令22/tcp: root 4324 F.... sshd root 6844 F.... sshd
[root@CentOS7 proc]# fuser 22/tcp22/tcp: 4324 6844
[root@CentOS7 proc]# fuser -u /var/log/cron/var/log/cron: 4330(root)
7、强制终止占用文件进程
[root@CentOS7 proc]# fuser -k /path/to/path/file
8、交互式终止占用文件进程
[root@CentOS7 proc]# fuser -k -i /var/log/cron/var/log/cron: 4330杀死进程 4330 ? (y/N)
9、 发送指定信息(如SIGHUP重启进程)
[root@CentOS7 proc]# fuser -k -HUP /nginx/conf/nginx.conf
10、 检查是否有进程占用(静默模式)
[root@CentOS7 proc]# fuser -s /var/log/cron
11、 查看所有可用的信号
[root@CentOS7 proc]# fuser -lHUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERMSTKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYSUNUSED
喜欢古诗词的同学们,欢迎移步「纸间有糖」,愿这里的文字甜到你心里。