讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么排查某个进程打开的文件句柄列表lsof

雨雪同学_2271

雨雪同学_2271

发布时间:2026-10-06 08:15:29

|

389人浏览过

|

来源于php中文网

原创

查指定进程打开的文件应使用lsof -n -P -p PID,加sudo确保权限,避免DNS/端口解析卡顿;真实句柄数须用ls -1 /proc/PID/fd/ 2>/dev/null | wc -l验证。

linux怎么排查某个进程打开的文件句柄列表lsof

直接用 lsof -p PID 就能列出该进程当前所有打开的文件句柄,但要注意它不是“计数器”,也不是万能快照——输出是否完整、是否含隐藏 fd、是否受权限/超时影响,得看你怎么用。

查指定进程的所有打开句柄:用 lsof -p PID,但别只信第一眼结果

这是最常用也最容易出错的操作。比如你想看 PID 1234 打开了什么:

  • 必须加 sudo(除非是自己启动的进程),否则会漏掉 root 进程或跨用户资源;
  • -n 和 -P 建议带上:sudo lsof -n -P -p 1234,避免 DNS 反解卡顿、端口被转成服务名干扰判断;
  • 输出里 FD 列出现 eventpoll、inotify、timerfd 等类型,说明进程用了 epoll 或异步 I/O,这类 fd 在高并发服务(如 Node.js、Nginx)中占比可能超 80%,但 lsof 默认可能不显示全——手册没写,但实测在 fd 数过万时容易截断或跳过;
  • 别用 lsof -p 1234 | wc -l 统计总数,表头占一行、解析失败时可能中断、还跳过内核级 fd,结果不准。

验证句柄真实数量:直接数 /proc/PID/fd/ 目录

这才是 Linux 内核暴露给用户的“真相接口”,比 lsof 更底层、更稳定:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 执行 ls -1 /proc/1234/fd/ 2>/dev/null | wc -l,结果就是当前真实打开的 fd 数量;
  • 2>/dev/null 必须加,否则遇到权限不足的 fd(比如其他用户创建的 socket)会混入错误行,导致计数偏大;
  • 这个值不含已 close 但尚未被内核回收的残留 fd(极少见),也不含 lsof 可能漏掉的 eventfd/timerfd,所以它代表的是“此刻内核认可的活跃句柄数”;
  • 普通用户只能读自己进程的 /proc/PID/fd/,root 才能读全部。

定位具体被占用的文件或端口:从路径或端口反查进程

当你知道一个文件删不掉、端口起不来,但不知道谁在用,就得反向查:

  • 查文件被谁占:lsof /var/log/app.log,注意路径必须是绝对路径,且不能带通配符;
  • 查目录及子目录:lsof +D /tmp,但小心——它会递归扫描,权限不足时可能卡住或报错,生产环境慎用;
  • 查端口:sudo lsof -i :8080 -n -P,NAME 列显示 *:8080 (LISTEN) 表示监听,192.168.1.100:8080->10.0.0.5:54321 (ESTABLISHED) 表示连接;
  • 查已删除但仍占空间的文件:lsof +L1,输出中 NAME 列带 (deleted) 字样的就是,对应 FD 通常是数字+r/w,不是 DEL(那是旧版字段,新版本已弃用)。

为什么 lsof -p PID 有时看起来“少了”或“不一致”

这不是 bug,是设计使然——lsof 的目标是“调试可见性”,不是“精确审计”:

  • 它依赖 /proc/PID/fd/ 遍历,但某些内核 fd(如 epoll 实例本身)在 /proc/PID/fd/ 下是符号链接,而 lsof 解析时可能因权限或路径长度失败,直接跳过;
  • Java 应用如果用了 sun.misc.Unsafe 或 JNI 直接操作 fd,lsof 可能完全看不到那些 fd;
  • Docker 容器里跑的进程,若挂载了 procfs 以外的伪文件系统(如 nsfs),lsof 输出可能缺失 namespace 相关条目;
  • 最常被忽略的一点:lsof 输出默认包含列头(COMMAND PID USER …),用管道统计时务必先 grep -v "COMMAND" 或用 -F 格式化输出避开。

真正要确认“进程到底用了多少 fd”,以 ls -1 /proc/PID/fd/ 为准;要用 lsof,就专注看它擅长的事:每个 fd 对应什么资源、路径是否异常、有没有 deleted 文件、端口状态是否符合预期——别让它干它不承诺干的事。

热门AI工具

更多
PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3850

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3313

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2453

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5890

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5522

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3253

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2765

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2979

2023.07.25

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 185人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn