当前位置: 首页 > news >正文

Linux系统强大的命令行工具之fuser

目录

一、基本语法

二、常用选项

三、进程使用标志

四、典型使用场景

1. 查找使用文件的进程

2. 查找使用目录的进程

3. 查找使用文件系统的进程

4. 终止占用文件的进程

5. 查看已删除但仍在使用的文件

6. 查看网络端口占用

7. 查看挂载点占用

五、注意事项

六、实际案例

案例 1:卸载被占用的文件系统

案例 2:解决文件被锁定问题

七、总结


fuser 是 Linux 系统中用于查找和管理正在使用文件、目录或文件系统的进程的工具。它可以帮助用户识别哪些进程占用了特定资源,并根据需要终止这些进程。以下是详细用法和示例。


一、基本语法
fuser [选项] 文件或目录

二、常用选项
选项说明
-k杀死使用指定文件或目录的进程(需 root 权限)。
-i交互模式,在终止进程前提示用户确认(与 -k 一起使用)。
-v显示详细信息(包括进程 ID、用户、命令等)。
-m指定文件系统或块设备(用于查找挂载点相关的进程)。
-u显示每个进程所属的用户名。
-c包含文件所在文件系统中所有打开的文件。
-d显示已删除但仍在使用的文件(如被删除但未关闭的文件)。
-n指定命名空间(如 tcpudp,用于网络套接字)。
-l列出所有可用的信号名称(如 SIGKILLSIGTERM)。
-s静默模式(不输出进程信息,仅返回状态码)。

三、进程使用标志

fuser 输出的进程号后会跟随一个字母,表示进程如何使用文件:

标志含义
c该文件是进程的当前工作目录。
e该文件是进程的可执行程序。
r该目录是进程的根目录(/)。
m该文件被进程内存映射(如共享库)。
f该文件被进程打开(默认不显示)。
F该文件被进程以写入方式打开(默认不显示)。

四、典型使用场景
1. 查找使用文件的进程
# 查找正在使用 /etc/passwd 的进程
fuser /etc/passwd# 输出示例:
/etc/passwd: 5678
  • 如果无输出,说明文件未被占用。
2. 查找使用目录的进程
# 查找正在使用 /var/log 的进程
fuser -v /var/log# 输出示例:
USER     PID ACCESS COMMAND
/var/log: root   6789 F.... systemd-journald
3. 查找使用文件系统的进程
# 查找正在使用 /home 文件系统的进程
fuser -m /home# 输出示例:
/home:       5432 8765
4. 终止占用文件的进程
# 强制终止占用 /mnt/test.txt 的进程
sudo fuser -k /mnt/test.txt# 交互式终止(需确认)
sudo fuser -ki /mnt/test.txt# 输出示例:
Kill process 5678 ? (y/N)
5. 查看已删除但仍在使用的文件
# 查找已删除但仍在使用的文件
fuser -d /usr# 输出示例:
/usr:       5678 (deleted)
6. 查看网络端口占用
# 查看使用 TCP 80 端口的进程
fuser -n tcp 80# 输出示例:
80/tcp:               4737  4738  4739
7. 查看挂载点占用
# 查找使用 /mnt/data 挂载点的进程
fuser -m /mnt/data# 输出示例:
/mnt/data:  1234 5678

五、注意事项

        1. 权限要求

  • 使用 -k 终止其他用户的进程时,必须是 root 用户
  • 普通用户只能终止自己的进程。

        2. 风险提示

  • 强制终止进程可能导致数据丢失或系统不稳定,需谨慎操作。
  • 使用 -k 时建议先通过 -v 查看详细信息,确认目标进程。

        3. 特殊场景

  • NFS 文件系统:若 NFS 服务器无响应,fuser 可能挂起。可设置环境变量 FUSER_VERSION=1 避免此问题。
  • 内存映射文件fuser 无法检测通过 mmap 打开但已关闭文件描述符的进程。

六、实际案例
案例 1:卸载被占用的文件系统
# 尝试卸载 /mnt/data 时提示“目标忙”
umount /mnt/data
umount: /mnt/data: target is busy.# 使用 fuser 查找占用进程
sudo fuser -mv /mnt/data# 输出示例:
USER     PID ACCESS COMMAND
/mnt/data: root   1234 F.... rsync# 终止进程后卸载
sudo fuser -k /mnt/data
umount /mnt/data
案例 2:解决文件被锁定问题
# 删除文件时报错“文件被占用”
rm /var/log/app.log# 使用 fuser 查找占用进程
sudo fuser /var/log/app.log# 输出示例:
/var/log/app.log: 1234# 终止进程后删除文件
sudo kill 1234
rm /var/log/app.log

七、总结

fuser 是系统管理和调试的实用工具,尤其适用于以下场景:

  • 文件/目录被占用:快速定位占用进程并释放资源。
  • 文件系统卸载:解决卸载失败问题。
  • 资源监控:分析进程对文件、网络端口的使用情况。

文章转载自:

http://1AfDgBIS.jcwhk.cn
http://Qs8liGzz.jcwhk.cn
http://lelhgPT0.jcwhk.cn
http://7ai9fz9x.jcwhk.cn
http://CsG8YGMS.jcwhk.cn
http://UfkJIcpb.jcwhk.cn
http://NyjAvurF.jcwhk.cn
http://sdGwwH2I.jcwhk.cn
http://IOsqQvZD.jcwhk.cn
http://J59ehPVo.jcwhk.cn
http://iX1O349V.jcwhk.cn
http://YW0Y5uwY.jcwhk.cn
http://SAxIEdmj.jcwhk.cn
http://OSCUtPRy.jcwhk.cn
http://HZsZEQ7o.jcwhk.cn
http://eGVm6bJ1.jcwhk.cn
http://sgLeoR19.jcwhk.cn
http://rF3G8yKx.jcwhk.cn
http://kcNlcQC0.jcwhk.cn
http://E7ujTZNH.jcwhk.cn
http://6npb0qsa.jcwhk.cn
http://riPsiRvL.jcwhk.cn
http://J9Q6nGqY.jcwhk.cn
http://UO3zXwlo.jcwhk.cn
http://k7KprQll.jcwhk.cn
http://m7lhhn2W.jcwhk.cn
http://q5pNsxnD.jcwhk.cn
http://e1IZLFE7.jcwhk.cn
http://0Ai00vmz.jcwhk.cn
http://rsoCwlRk.jcwhk.cn
http://www.dtcms.com/a/362686.html

相关文章:

  • 江协科技-1-1软件开发与2-1新建工程
  • C语言精选100道编程题(附有图解和源码)
  • 控制系统仿真之PID参数整定的Z-N法(弯曲切线法)(十)
  • K6 html压力测试报告中参数详解以及常见问题解析
  • 算法题打卡力扣第3题:无重复字符的最长子串(mid)
  • 在线拍卖|基于Springboot+vue的在线拍卖管理系统(源码+数据库+文档)
  • F5发布后量子API安全解决方案,以AI驱动全面防护应对量子计算威胁
  • 面阵 vs 线阵相机:怎么选不踩坑?选型公式直接套用
  • HTML第二课:块级元素
  • 【实时Linux实战系列】采用实时Linux构建无人机控制系统
  • Vue基础知识-Vue中v-cloak、v-text、v-html、v-once、v-pre指令详解
  • 【Doris入门】Doris数据表模型:聚合模型(Aggregate Key Model)详解
  • 数论常见公式定理大全
  • C++学习——继承
  • 无线通信网络是互联网边缘的重要组成,同时也是局域联网的主要方式
  • RT-Thread SMP相关问题分析
  • 01-html css
  • 【论文阅读】Jet-Nemotron: 高效语言模型与后神经网络架构搜索
  • 11.《简单的路由重分布基础知识探秘》
  • 解决完美主义的方法是,去追求不完美--辩证法
  • 《Stable Diffusion XL 1.0 实战:AI 绘画从 “能看” 到 “好看” 的升级技巧》
  • Android把源Bitmap中心缩放到固定宽高的尺寸,Kotlin
  • Kaia AMA 全回顾:如何让 Web3 无痕融入2.5 亿用户日常?9 月 7 日中国行揭秘!
  • WPF启动窗体的三种方式
  • 达梦:存储过程实现多个用户之间表的授权
  • 如何在本地环境中搭建 GitLab 服务器
  • 《IC验证必看|SV中Process控制》
  • ffmpeg 安装
  • 添加⽂件--场景⼆
  • JVM1.8与1.9的区别是什么?