登录
首页 >  文章 >  linux

LINUXlsof命令使用:查看文件被哪个进程占用

时间:2025-12-18 20:33:33 300浏览 收藏

推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

本篇文章给大家分享《LINUX lsof命令实战:查看文件被哪个进程占用》,覆盖了文章的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

首先使用lsof命令定位占用文件或目录的进程,再通过kill命令终止对应PID的进程以释放资源。具体步骤:1. 用lsof /path/to/file查看指定文件被哪个进程占用;2. 用lsof +D /mnt/data查找占用指定目录的所有进程;3. 用lsof -p PID反向查询某进程打开的所有文件;4. 用lsof -i :80检查指定端口占用情况;5. 获取PID后执行kill -9 PID终止进程,并重新验证文件是否已释放。

LINUX的lsof命令实战_查看LINUX系统中文件被哪个进程占用

如果您在Linux系统中尝试卸载某个设备或删除某个文件时,发现操作无法完成,可能是由于该文件正被某个进程占用。以下是使用lsof命令定位并处理此类问题的具体步骤:

本文运行环境:Dell PowerEdge服务器,Ubuntu 22.04

一、查看指定文件被哪个进程占用

通过lsof命令可以直接查询特定文件或目录当前被哪些进程打开,便于快速定位占用源。

1、打开终端,输入以下命令,将“/path/to/file”替换为实际的文件路径:
lsof /path/to/file

2、命令执行后会列出所有访问该文件的进程信息,包括进程ID(PID)、用户、文件描述符等。

二、查找占用指定目录的所有进程

当需要卸载某个挂载点目录但提示“device is busy”时,可通过lsof检查目录下被打开的文件。

1、使用如下命令查看正在使用某目录的进程:
lsof +D /mnt/data

2、其中“/mnt/data”为目标目录路径,+D参数表示递归扫描子目录中的打开文件。

3、根据输出结果确定具体进程,并决定是否终止该进程以释放资源。

三、根据进程ID查看其打开的所有文件

已知某个进程可能干扰文件操作时,可反向查询该进程打开了哪些文件。

1、执行以下命令,替换PID为实际的进程编号:
lsof -p PID

2、输出内容将显示该进程关联的所有文件和套接字,帮助判断其行为是否合理。

四、查找指定端口被哪个进程占用

网络服务冲突常因端口被占用导致,lsof可用于识别占用特定端口的进程。

1、查询TCP 80端口的占用情况:
lsof -i :80

2、命令将返回协议类型、PID、用户及进程名称等信息。

3、若需筛选UDP协议,可在命令后添加/udp,如 lsof -i :53/udp。

五、终止占用文件的进程

在确认可以安全中断的情况下,可通过kill命令结束占用进程以释放文件。

1、从lsof输出中获取目标进程的PID。

2、执行强制终止命令:
kill -9 PID

3、再次运行lsof验证该文件是否已无进程引用。

理论要掌握,实操不能落!以上关于《LINUXlsof命令使用:查看文件被哪个进程占用》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>