linux proc目录
proc简介
proc目录:
linux系统下的虚拟文件系统目录,是系统内存的映射;
直接访问这个目录来获取系统信息;
使用ll查看proc目录,可以发现文件大小大多是0;
使用cat命令却可以输出其中的内容;
对于其中每个文件的含义可以使用:man proc,进行查看;
其中以数字命令的文件夹,数字代表进程的pid号(进程号),文件中的内容为该进程的详细信息;
proc常用目录介绍
-
/proc/loadavg
-保存了系统负载的平均值,其前三列分别表示最近1分钟、5分钟及15分的平均负载。反映了当前系统的繁忙情况。
-
/proc/meminfo
当前内存使用的统计信息,其内容显示为两列,前者为统计属性,后者为对应的值;
-
/proc/diskstats
磁盘设备的磁盘I/O统计信息列表;
-
/proc/net/dev
网络流入流出的统计信息,包括接收包的数量、发送包的数量,发送数据包时的错误和冲突情况等。
-
/proc/cmdline
在启动时传递至内核的启动参数,通常由grub启动管理工具进行传递;
-
/proc/devices
系统已经加载的所有块设备和字符设备的信息;
-
/proc/mounts
系统中当前挂载的所有文件系统;
-
/proc/partitions
块设备每个分区的主设备号(major)和次设备号(minor)等信息,同时包括每个分区所包含的块(block)数目;
-
/proc/uptime
系统上次启动以来的运行时间;
-
/proc/version
当前系统运行的内核版本号,在作者的Debian系统中,还会显示系统安装的gcc版本;
-
/proc/vmstat
当前系统虚拟内存的统计数据。
proc目录下进程目录常用文件介绍
简介:proc目录下以数字命名的为进程目录;
数字对应为pid号,进程的pid号可使用top、ps 等命令查看
下面以进程main为例进行讲解,使用top命令可知main的pid为2550;
-
top
-
2550目录
-
常用文件介绍
1./proc/2550/cmdline
启动当前进程的完整命令,僵尸进程目录中的此文件不包含任何信息;
2./proc/2550/cwd
指向当前进程运行目录的一个符号链接 ,使用readlink查看;
3./proc/2550/environ
当前进程的环境变量列表,使用strings查看;
4./proc/2550/exe
指向启动当前进程的可执行文件(完整路径)的符号链接,执行该文件可以启动当前进程的一个拷贝;
5./proc/2550/fd
这是个目录,包含当前进程打开的每一个文件的文件描述符(file descriptor),这些文件描述符是指向实际文件的一个符号链接;
6./proc/2550/limits
当前进程所使用的每一个受限资源的软限制、硬限制和管理单元,此文件仅可由实际启动当前进程的UID用户读取;
7./proc/2550/maps
当前进程关联到的每个可执行文件和库文件在内存中的映射区域及其访问权限所组成的列表;
8./proc/2550/mem
当前进程所占用的内存空间,由open、read和lseek等系统调用使用,不能被用户读取;9./proc/2550/root
指向当前进程运行根目录的符号链接,在Unix和Linux系统上,通常采用chroot命令使每个进程运行于独立的根目录;
10./proc/2550/stat
当前进程的状态信息,包含一系统格式化后的数据列,可读性差,通常由ps命令使用;
11./proc/2550/statm
当前进程占用内存的状态信息,通常以“页面”(page)表示;
11./proc/2550/status
与stat所提供信息类似,但可读性较好,如下所示,每行表示一个属性信息;其详细介绍请参见 proc的man手册页;
13./proc/2550/task
目录文件,包含由当前进程所运行的每一个线程的相关信息,每个线程的相关信息文件均保存在一个由线程号(tid)命名的目录中,这类似于其内容类似于每个进程目录中的内容(无限套娃);
参考:
https://blog.youkuaiyun.com/qq_25518029/article/details/120033975
https://zhuanlan.zhihu.com/p/26923061