fuser命令可直接查进程、发信号、杀进程,三步完成:用fuser /path查PID,加-vu显示用户和访问类型(如cwd/txt/mem),加-ki或-k -TERM安全终止,需sudo权限且注意NFS等特殊场景。

直接用 fuser 查进程、发信号、杀进程,三步就能完成,关键在选项组合和权限控制。
查谁在访问文件或目录
运行 fuser /path/to/file 可快速列出占用该资源的进程 PID。加 -v 能看到完整信息:PID、用户、访问类型(如 cwd 表示当前工作目录,txt 表示可执行文件,mem 表示内存映射);加 -u 会同时显示用户名。例如:
-
fuser -vu /var/log/syslog—— 查看哪些用户、哪些进程正在读写该日志 -
fuser -vm /mnt/usb—— 若目标是挂载点,-m 确保扫描整个文件系统,而非单个路径
理解访问类型,避免误操作
输出中的 ACCESS 列字母含义直接影响操作风险:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- c 或 cwd:进程当前工作目录设在此处——常见于卡住的 shell 或后台脚本,直接 kill 可能中断会话
- e 或 txt:该文件是进程的可执行程序——终止即关闭该服务,需确认是否必要
- m:文件被 mmap 加载(如共享库)——通常不建议强杀,可能引发段错误
- r/w:普通读写打开——相对安全,但也要检查是否为活跃业务进程
安全终止进程
不加确认直接 -k 风险高,推荐组合使用:
-
fuser -ki /path/to/file—— 逐个询问,适合人工干预场景 -
fuser -k -TERM /path/to/file—— 发送 SIGTERM,给进程机会优雅退出,比默认 SIGKILL 更稳妥 -
sudo fuser -k /path/to/dir—— 多数情况下需 root 权限,否则只能看到当前用户的进程
排查查不到或报错的情况
如果提示 “No such file or directory” 却路径明确存在,大概率是权限问题:
- 普通用户无法读取其他用户
/proc/PID/fd/内容,必须用 sudo - 系统启用了
hidepid=2或3(查看/proc/sys/fs/proc_hidepid),会隐藏非属主进程信息 - 目标被 NFS 挂载时,
fuser可能识别不全,可先尝试umount -l(lazy unmount)再查

















