首页/新闻资讯/正文详情

Linux:虚拟文件系统/proc和self进程

发布时间:2026/11/6 1:15:15 来源:云帆数科 栏目:资讯中心
Linux:虚拟文件系统/proc和self进程
相关阅读Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482目录/proc目录self进程/proc目录在Linux操作系统中目录/proc是一个虚拟文件系统称为procfc用于访问内核和系统的实时状态信息。这个文件系统不同于常规文件系统因为它并不存储在磁盘上而是动态生成的。它的内容反映了当前系统的内核状态和运行中的进程信息主要用于系统管理和调试。每个正在运行的进程都会在目录/proc下用一个子目录表示目录名为进程的id号例如子目录/proc/1234会包含id号为1234的进程的相关信息。当一个进程创建时操作系统会为其分配一个未使用的id号并在目录/proc下创建相应的目录当一个进程执行完毕退出时操作系统会删除相应的目录并回收id号。例1已一个后台运行的sleep命令说明了上述过程。# 例1 [zhangchenEDA ~]$ sleep 10 # 一个后台执行的测试命令 [1] 4533 [zhangchenEDA ~]$ ls -al /proc *** dr-xr-xr-x. 9 zhangchen zhangchen 0 Sep 20 20:27 4533 *** # 等待10秒后 [zhangchenEDA ~]$ ls -al /proc/4533 ls: cannot access /proc/4533: No such file or directory在sleep命令执行后目录/proc下多出了一个名为4533的子目录而在10秒后sleep命令执行完毕此时名为4533的子目录消失了前提是此时操作系统没有将id号4533其分配给其他进程。例2展示了使用ls命令来显示Bash进程目录下的内容以及它们的简介。# 例2 [zhangchenEDA ~]$ ps # 查询Bash进程的id号 PID TTY TIME CMD 4934 pts/0 00:00:00 bash 6192 pts/0 00:00:00 ps [zhangchenEDA ~]$ ls -al /proc/4934 # 显示虚拟文件系统中Bash进程目录 total 0 dr-xr-xr-x. 9 zhangchen zhangchen 0 Sep 20 20:30 . dr-xr-xr-x. 385 root root 0 Sep 20 20:22 .. dr-xr-xr-x. 2 zhangchen zhangchen 0 Sep 20 20:37 attr # 包含与进程相关的属性如安全属性 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 autogroup # 显示进程的自动调度组信息用于CPU调度优化 -r--------. 1 zhangchen zhangchen 0 Sep 20 20:37 auxv # 包含传递给进程的辅助向量描述了进程运行时的环境 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 cgroup # 显示该进程所属的控制组cgroup用于资源控制 --w-------. 1 zhangchen zhangchen 0 Sep 20 20:37 clear_refs # 用于清除内存页的引用计数主要用于内存分析 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:30 cmdline # 包含进程启动时的命令行参数 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 comm # 显示进程的简短名称通常是执行的命令名 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 coredump_filter # 控制生成核心转储时包含的内存段 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 cpuset # 显示进程的CPU集设置用于控制该进程在哪些CPU上运行 lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 20 20:37 cwd - /home/zhangchen # 一个指向该进程的当前工作目录的符号链接 -r--------. 1 zhangchen zhangchen 0 Sep 20 20:37 environ # 包含进程的环境变量信息 lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 20 20:30 exe - /usr/bin/bash # 一个指向正在执行的可执行文件的路径 dr-x------. 2 zhangchen zhangchen 0 Sep 20 20:30 fd # 包含进程打开的文件描述符的符号链接指向相应的资源 dr-x------. 2 zhangchen zhangchen 0 Sep 20 20:37 fdinfo # 目录提供与文件描述符相关的详细信息 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 gid_map # 显示进程的组ID映射用于用户命名空间 -r--------. 1 zhangchen zhangchen 0 Sep 20 20:37 io # 显示与该进程相关的I/O统计信息例如读取和写入的字节数 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 limits # 包含该进程的资源限制如文件大小、内存限制等 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 loginuid # 显示登录用户的UID用于审计 dr-x------. 2 zhangchen zhangchen 0 Sep 20 20:37 map_files # 包含该进程内存映射的文件 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 maps # 显示进程的内存映射包含所有加载到进程地址空间的文件和库 -rw-------. 1 zhangchen zhangchen 0 Sep 20 20:37 mem # 显示该进程的虚拟内存信息 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 mountinfo # 提供关于进程挂载点的详细信息 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 mounts # 提供进程的挂载点信息但它的输出格式较为简洁 -r--------. 1 zhangchen zhangchen 0 Sep 20 20:37 mountstats # 提供进程挂载点的性能统计信息 dr-xr-xr-x. 6 zhangchen zhangchen 0 Sep 20 20:37 net # 包含进程的网络相关信息 dr-x--x--x. 2 zhangchen zhangchen 0 Sep 20 20:37 ns # 提供与进程相关的命名空间信息如网络、PID 和 UTS 等命名空间 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 numa_maps # 显示进程的NUMA非一致性内存访问节点分配 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 oom_adj # 控制进程被OOM killer内存不足杀手选择的优先级。 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 oom_score # 显示该进程的OOM killer分数 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 oom_score_adj # 控制进程被OOM killer内存不足杀手选择的优先级。 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 pagemap # 提供与进程页表相关的详细信息 -r--------. 1 zhangchen zhangchen 0 Sep 20 20:37 patch_state # 跟踪补丁应用状态 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 personality # 显示和设置进程的执行环境“个性”参数 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 projid_map # 显示进程的项目ID映射 lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 20 20:37 root - / # 该进程的根目录符号链接。通常指向/ -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 sched # 提供该进程的调度信息包括调度统计数据和相关状态 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 schedstat # 提供该进程的调度信息包括调度统计数据和相关状态 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 sessionid # 显示进程的会话ID -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 setgroups # 控制该进程是否可以设置新的组ID -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 smaps # 提供内存映射的详细信息包括每个映射的大小和属性 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 stack # 显示该进程的内核堆栈信息 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:30 stat # 包含进程的详细状态信息如CPU使用、进程状态等 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 statm # 显示进程的内存使用情况 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:30 status # 提供进程的概述包括 PID、状态、内存使用、权限等 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 syscall # 显示该进程当前正在调用的系统调用信息 dr-xr-xr-x. 3 zhangchen zhangchen 0 Sep 20 20:37 task # 包含该进程的所有线程的子目录每个线程都有一个独立的目录类似于/proc的结构 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 timers # 提供该进程的定时器信息 -rw-r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 uid_map # 显示进程的用户ID映射 -r--r--r--. 1 zhangchen zhangchen 0 Sep 20 20:37 wchan # 显示进程当前正在等待的内核函数的名称链接文件cwd指向命令执行时的当前工作目录但它一定是有效的当前工作目录呢答案不然。可以进行一个小测试比如首先使用cd命令进入一个目录然后删除它此时执行的任何命令所创建的任何进程都没有有效的当前工作目录如例3所示这是一个找茬的例子一般不会发生。# 例3 [zhangchenEDA ~]$ mkdir dir [zhangchenEDA ~]$ cd dir [zhangchenEDA dir]$ rm ~/dir [zhangchenEDA dir]$ sleep 20 [1] 12690 [zhangchenEDA dir]$ ls /proc/12690/cwd -al lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 21 00:26 /proc/12690/cwd - /home/zhangchen/dir (deleted) # 在Redhat系统中/proc/12690/cwd会被标红/home/zhangchen/dir (deleted)会闪烁self进程/proc/self是一个链接文件指向了当前进程的目录也就是说如果使用ls -al /proc/self命令则显示其指向的是进程ls的目录因为访问目录/proc/self时ls进程正在执行如例4所示。# 例4 [zhangchenEDA ~]$ ls -al /proc/self # 查询当前进程(即ls)的信息 lrwxrwxrwx. 1 root root 0 Sep 20 23:26 /proc/self - 5256 # 指向了/proc/5256 [zhangchenEDA ~]$ ls -al /proc/self # 查询当前进程(即ls)的信息 lrwxrwxrwx. 1 root root 0 Sep 20 23:26 /proc/self - 5371 # 指向了/proc/5371 [zhangchenEDA ~]$ ls -al /proc/self # 查询当前进程(即ls)的信息 lrwxrwxrwx. 1 root root 0 Sep 20 23:26 /proc/self - 5434 # 指向了/proc/5434从例4中可以看出 连续三次使用ls命令得到的结果是不同的这是因为每次执行ls命令都会创建一个新的进程并分配给一个未使用的id号它们可能相等因为执行完毕后id号会被回收但在该例中不相等。如果使用cd命令进入/proc/self按上面的说法会进入cd进程目录但它在命令执行完后就被删除了这会导致第一小节说的无效当前工作目录的问题吗例5是一个测试。# 例5 [zhangchenEDA ~]$ cd /proc/self [zhangchenEDA self]$ ls -al cwd exe lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 21 00:48 cwd - /proc/10354 lrwxrwxrwx. 1 zhangchen zhangchen 0 Sep 21 00:11 exe - /usr/bin/bash可以看出当前工作目录是有效的而链接文件exe指向的居然是Bash命令的路径这其实是Bash的进程目录。这是因为对于一些内建命令不会创建子进程执行而是直接在当前Bash进程中执行可以使用type来检测一个命令是否为内建命令如例6所示。# 例6 [zhangchenEDA ~]$ type cd cd is a shell builtin

相关推荐

10 行代码给噪声 3D 网格做清洗:PyTorch3D 网格预处理笔记
10 行代码给噪声 3D 网格做清洗:PyTorch3D 网格预处理笔记

10 行代码给噪声 3D 网格做清洗:PyTorch3D 网格预处理笔记 【免费下载链接】pytorch3d PyTorch3D is FAIRs library of reusable components for deep learning with 3D data 项目地址: https://gitcode.com/gh_mirrors/py/pytorch3d PyTorch3D 没有内置边折… · 2026/11/6 1:15:15

iloader安装实操:3个平台,从插上iPhone到装好第一个App
iloader安装实操:3个平台,从插上iPhone到装好第一个App

iloader安装实操:3个平台,从插上iPhone到装好第一个App 【免费下载链接】iloader User friendly sideloader 项目地址: https://gitcode.com/GitHub_Trending/iloa/iloader iloader 是一款免费开源的 iOS 侧载工具:不走 App Store,用你自己的 Apple ID 当"开发者账… · 2026/11/6 1:15:15

Jellyfin Desktop 完整指南:从安装到连上媒体库,10 分钟一步到位
Jellyfin Desktop 完整指南:从安装到连上媒体库,10 分钟一步到位

Jellyfin Desktop 完整指南:从安装到连上媒体库,10 分钟一步到位 【免费下载链接】jellyfin-desktop Jellyfin Desktop Client 项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin-desktop 网页端播放器拖个进度条总要等两秒&#xff0c… · 2026/11/6 1:15:15

1553B总线常见三种组网方式
1553B总线常见三种组网方式

1553B总线(MIL-STD-1553B)是一种集中式串行总线协议,广泛应用于航空、航天、舰船及军事装备等领域。1553B总线通过统一的数字通信标准,取代了传统设备间复杂的模拟信号传输和点对点连线,大幅减少了电缆数量和系统重量。… · 2026/11/6 1:17:15

Spyglass:跨时钟域同步(同步单元)
Spyglass:跨时钟域同步(同步单元)

相关阅读 Spyglasshttps://blog.csdn.net/weixin_45791458/category_12828934.html?spm1001.2014.3001.5482 简介 同步单元方案主要用于控制信号跨时钟域同步,该方案使用约束或参数将目标时钟域中的单元指定为同步单元,如图1所示。 图1 同步单元方案 图… · 2026/11/6 1:17:15

03:对齐输出
03:对齐输出

/*** 题目名称&#xff1a;对齐输出 <p>* 题目来源&#xff1a;http://noi.openjudge.cn/ch0101/03/ <p>* 程序功能&#xff1a;右对齐输出三个整数&#xff0c;每个整数占8个字符宽度&#xff0c;彼此用一个空格隔开** author 潘磊&#xff0c;just_panleijust.ed… · 2026/11/6 1:17:15

Verilog基础:隐式线网声明
Verilog基础:隐式线网声明

相关阅读 Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482 一般情况下&#xff0c;设计者会对线网(Net)进行显式声明&#xff0c;如图1所示。 图1 线网声明 但这不是绝对的&#xff0c;在没有显式声明的情况下&#xff0c;… · 2026/11/6 1:17:15

07:输出浮点数
07:输出浮点数

/*** 题目名称&#xff1a;输出浮点数 <p>* 题目来源&#xff1a;http://noi.openjudge.cn/ch0101/07/ <p>* 程序功能&#xff1a;按题目要求以不同的格式化输出一个双精度浮点数** author 潘磊&#xff0c;just_panleijust.edu.cn* version 1.0*/// 本题Java无法A… · 2026/11/6 1:17:15

【中断】向量中断、中断服务程序、中断向量、中断向量表、中断向量地址,之间的关系
【中断】向量中断、中断服务程序、中断向量、中断向量表、中断向量地址,之间的关系

向量中断&#xff1a; 一种识别中断源的方式和技术。 中断服务程序&#xff1a; 不同的中断信号&#xff0c;需要用不同的 中断处理程序&#xff08;中断服务程序&#xff09; 来处理。中断服务程序一般是OS模块。 中断向量&#xff1a; 由向量地址形成部件&#xff0c;是… · 2026/11/6 1:16:15

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码