首页 > 其他分享 >/proc文件系统(二):/proc/<pid>/stat【转】

/proc文件系统(二):/proc/<pid>/stat【转】

时间:2023-07-07 10:34:48浏览次数:37  
标签:11 stat 16 -- proc 30 文件系统 53 root

转自:https://www.cnblogs.com/Jimmy1988/p/10045601.html

0. 前言

/proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。

  • 它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。
  • 由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的。
  root@jimmy-vm:/proc# ll /proc/
  dr-xr-xr-x 9 root root 0 11月 28 20:09 <pid>/
  ......
  dr-xr-xr-x 2 root root 0 11月 30 16:53 acpi/
  dr-xr-xr-x 5 root root 0 11月 30 16:53 asound/
  -r--r--r-- 1 root root 0 11月 30 16:53 buddyinfo
  dr-xr-xr-x 4 root root 0 11月 30 16:53 bus/
  -r--r--r-- 1 root root 0 11月 30 16:53 cgroups
  -r--r--r-- 1 root root 0 11月 30 16:53 cmdline
  -r--r--r-- 1 root root 0 11月 30 16:53 consoles
  -r--r--r-- 1 root root 0 11月 30 16:53 cpuinfo
  -r--r--r-- 1 root root 0 11月 30 16:53 crypto
  -r--r--r-- 1 root root 0 11月 30 16:53 devices
  -r--r--r-- 1 root root 0 11月 30 16:53 diskstats
  -r--r--r-- 1 root root 0 11月 30 16:53 dma
  dr-xr-xr-x 2 root root 0 11月 30 16:53 driver/
  -r--r--r-- 1 root root 0 11月 30 16:53 execdomains
  -r--r--r-- 1 root root 0 11月 30 16:53 fb
  -r--r--r-- 1 root root 0 11月 30 16:53 filesystems
  dr-xr-xr-x 5 root root 0 11月 30 16:53 fs/
  -r--r--r-- 1 root root 0 11月 30 16:53 interrupts
  -r--r--r-- 1 root root 0 11月 30 16:53 iomem
  -r--r--r-- 1 root root 0 11月 30 16:53 ioports
  dr-xr-xr-x 57 root root 0 11月 30 16:53 irq/
  -r--r--r-- 1 root root 0 11月 30 16:53 kallsyms
  -r-------- 1 root root 140737477881856 11月 30 16:53 kcore
  -r--r--r-- 1 root root 0 11月 30 16:53 keys
  -r--r--r-- 1 root root 0 11月 30 16:53 key-users
  -r-------- 1 root root 0 11月 16 14:27 kmsg
  -r-------- 1 root root 0 11月 30 16:53 kpagecgroup
  -r-------- 1 root root 0 11月 30 16:53 kpagecount
  -r-------- 1 root root 0 11月 30 16:53 kpageflags
  -r--r--r-- 1 root root 0 11月 30 16:53 loadavg
  -r--r--r-- 1 root root 0 11月 30 16:53 locks
  -r--r--r-- 1 root root 0 11月 30 16:53 mdstat
  -r--r--r-- 1 root root 0 11月 30 16:53 meminfo
  -r--r--r-- 1 root root 0 11月 30 16:53 misc
  -r--r--r-- 1 root root 0 11月 30 16:53 modules
  lrwxrwxrwx 1 root root 11 11月 30 16:53 mounts -> self/mounts
  dr-xr-xr-x 3 root root 0 11月 30 16:53 mpt/
  -rw-r--r-- 1 root root 0 11月 30 16:53 mtrr
  lrwxrwxrwx 1 root root 8 11月 30 16:53 net -> self/net/
  -r--r--r-- 1 root root 0 11月 30 16:53 pagetypeinfo
  -r--r--r-- 1 root root 0 11月 30 16:53 partitions
  -r--r--r-- 1 root root 0 11月 30 16:53 sched_debug
  -r--r--r-- 1 root root 0 11月 30 16:53 schedstat
  dr-xr-xr-x 4 root root 0 11月 30 16:53 scsi/
  lrwxrwxrwx 1 root root 0 11月 16 14:27 self -> 107692/
  -r-------- 1 root root 0 11月 30 16:53 slabinfo
  -r--r--r-- 1 root root 0 11月 30 16:53 softirqs
  -r--r--r-- 1 root root 0 11月 30 16:53 stat
  -r--r--r-- 1 root root 0 11月 16 14:27 swaps
  dr-xr-xr-x 1 root root 0 11月 16 14:27 sys/
  --w------- 1 root root 0 11月 30 16:53 sysrq-trigger
  dr-xr-xr-x 2 root root 0 11月 30 16:53 sysvipc/
  lrwxrwxrwx 1 root root 0 11月 16 14:27 thread-self -> 107692/task/107692/
  -r--r--r-- 1 root root 0 11月 30 16:53 timer_list
  -rw-r--r-- 1 root root 0 11月 30 16:53 timer_stats
  dr-xr-xr-x 4 root root 0 11月 30 16:53 tty/
  -r--r--r-- 1 root root 0 11月 30 16:53 uptime
  -r--r--r-- 1 root root 0 11月 30 16:53 version
  -r--r--r-- 1 root root 0 11月 30 16:53 version_signature
  -r-------- 1 root root 0 11月 30 16:53 vmallocinfo
  -r--r--r-- 1 root root 0 11月 30 16:53 vmstat
  -r--r--r-- 1 root root 0 11月 30 16:53 zoneinfo
   

1. /proc/cpuinfo

/proc文件系统(一):cpuinfo

2. /proc/<pid> 整体

/proc目录中有一些以数字命名的目录,它们是进程目录。

  • 系统中当前运行的每一个进程在/proc下都对应一个以进程号为目录名的目录/proc/pid,它们是读取进程信息的接口。
  • 在Linux 2.6.0-test6以上的版本中/proc/pid目录中有一个task目录,/proc/pid/task目录中也有一些以该进程所拥有的线程的线程号命名的目录/proc/pid/task/tid,它们是读取线程信息的接口。

pid_list

  root@TinaLinux:/proc/219# ll
  dr-xr-xr-x 8 root root 0 Nov 30 14:49 .
  dr-xr-xr-x 1031 root root 0 Jan 1 1970 ..
  dr-xr-xr-x 2 root root 0 Nov 30 14:52 attr
  -r-------- 1 root root 0 Nov 30 14:49 auxv
  -r--r--r-- 1 root root 0 Nov 30 14:49 cmdline
  -rw-r--r-- 1 root root 0 Nov 30 14:52 comm
  -rw-r--r-- 1 root root 0 Nov 30 14:52 coredump_filter
  lrwxrwxrwx 1 root root 0 Nov 30 14:52 cwd -> /usr/bvrobot
  -r-------- 1 root root 0 Nov 30 14:52 environ
  lrwxrwxrwx 1 root root 0 Nov 30 14:49 exe -> /usr/bvrobot/bvrobot
  dr-x------ 2 root root 0 Nov 30 14:52 fd
  dr-x------ 2 root root 0 Nov 30 14:52 fdinfo
  -r--r--r-- 1 root root 0 Nov 30 14:52 limits
  -rw-r--r-- 1 root root 0 Nov 30 14:52 loginuid
  -r--r--r-- 1 root root 0 Nov 30 14:52 maps
  -rw------- 1 root root 0 Nov 30 14:52 mem
  -r--r--r-- 1 root root 0 Nov 30 14:52 mountinfo
  -r--r--r-- 1 root root 0 Nov 30 14:52 mounts
  -r-------- 1 root root 0 Nov 30 14:52 mountstats
  dr-xr-xr-x 4 root root 0 Nov 30 14:52 net
  dr-x--x--x 2 root root 0 Nov 30 14:52 ns
  -rw-r--r-- 1 root root 0 Nov 30 14:52 oom_adj
  -r--r--r-- 1 root root 0 Nov 30 14:52 oom_score
  -rw-r--r-- 1 root root 0 Nov 30 14:52 oom_score_adj
  -r--r--r-- 1 root root 0 Nov 30 14:52 personality
  lrwxrwxrwx 1 root root 0 Nov 30 14:52 root -> /
  -r--r--r-- 1 root root 0 Nov 30 14:52 sessionid
  -r--r--r-- 1 root root 0 Nov 30 14:52 stack
  -r--r--r-- 1 root root 0 Nov 30 14:49 stat
  -r--r--r-- 1 root root 0 Nov 30 14:52 statm
  -r--r--r-- 1 root root 0 Nov 30 14:52 status
  dr-xr-xr-x 13 root root 0 Nov 30 14:52 task
  -r--r--r-- 1 root root 0 Nov 30 14:52 wchan

2.1 /proc/<pid>/stat

  root@TinaLinux:/proc/3782# cat stat
  3782 (bvrobot) S 114 3782 114 64512 4072 1077936384 8727 14959 0 0 37 524 0 1 20 0 11 0 71083 45535232 8490 4294967295 65536 1285064 3201052128 3201049428 3069071928 0 0 4096 67137026 4294967295 0 0 17 2 0 0 0 0 0 1353712 1360302 4616192
参数数值解释
pid 3782 进程(包括轻量级进程,即线程)号
comm bvrobot 应用程序或命令的名字
task_state S 任务的状态:
R:runnign, S:sleeping (TASK_INTERRUPTIBLE),
T: stopped, Z:zombie, D:dead
ppid 114 父进程ID
pgid 3782 进程组号
sid 114 该任务所在的会话组ID
tty_nr 64512(pts/6) 该任务的tty终端的设备号
tty_pgrp 4072 终端的进程组号,当前运行在该任务所在终端的前台任务(包括shell 应用程序)的PID。
task->flags 1077936384 进程标志位,查看该任务的特性
min_flt 8727 该任务不需要从硬盘拷数据而发生的缺页(次缺页)的次数
cmin_flt 14959 累计的该任务的所有的waited-for进程曾经发生的次缺页的次数目
maj_flt 0 该任务需要从硬盘拷数据而发生的缺页(主缺页)的次数
cmaj_flt 0 累计的该任务的所有的waited-for进程曾经发生的主缺页的次数目
utime 37 该任务在用户态运行的时间,单位为jiffies
stime 524 该任务在核心态运行的时间,单位为jiffies
cutime 0 累计的该任务的所有的waited-for进程曾经在用户态运行的时间,单位为jiffies
cstime 1 累计的该任务的所有的waited-for进程曾经在核心态运行的时间,单位为jiffies
priority 20 任务的动态优先级
nice 0 任务的静态优先级
num_threads 11 该任务所在的线程组里线程的个数
it_real_value 0 由于计时间隔导致的下一个 SIGALRM 发送进程的时延,以 jiffy 为单位.
start_time 71038 该任务启动的时间,单位为jiffies
vsize 45535232 该任务的虚拟地址空间大小
rss 8490 该任务当前驻留物理地址空间的大小;。
rlim 4294967295 该任务能驻留物理地址空间的最大值
start_code 65536 该任务在虚拟地址空间的代码段的起始地址
end_code 1285064 该任务在虚拟地址空间的代码段的结束地址
start_stack 3201052128 该任务在虚拟地址空间的栈的结束地址
kstkesp 3201049428 esp(32 位堆栈指针) 的当前值, 与在进程的内核堆栈页得到的一致.
kstkeip 3069071928 指向将要执行的指令的指针, EIP(32 位指令指针)的当前值.
pendingsig 0 待处理信号的位图,记录发送给进程的普通信号
block_sig 0 阻塞信号的位图
sigign 4096 忽略的信号的位图
sigcatch 67137026 被俘获的信号的位图
wchan 4294967295 如果该进程是睡眠状态,该值给出调度的调用点
nswap 0 被swapped的页数,当前没用
cnswap 0 所有子进程被swapped的页数的和,当前没用
exit_signal 17 该进程结束时,向父进程所发送的信号
task_cpu(task) 2 运行在哪个CPU上
task_rt_priority 0 实时进程的相对优先级别
task_policy 0 进程的调度策略,0:非实时进程,1:FIFO实时进程;2:RR实时进程
blio_ticks 0 等待阻塞IO的时间
gtime 1353712 guest time of the task in jiffies
cgtime 1360302 guest time of the task children in jiffies
start_data 4616192 address above which program data+bss is placed
end_data   address below which program data+bss is placed
start_brk   address above which program heap can be expanded with br
  arg_start | | address above which program command line is placed

arg_end | | address below which program command line is placed
env_start | | address above which program environment is placed
env_end | | address below which program environment is placed
exit_code | | the thread's exit_code in the form reported by the waitpid system call

标签:11,stat,16,--,proc,30,文件系统,53,root
From: https://www.cnblogs.com/sky-heaven/p/17534154.html

相关文章

  • R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达
    全文下载链接:http://tecdat.cn/?p=25880 最近我们被客户要求撰写关于泊松过程的研究报告,包括一些图形和统计输出。本文描述了一个模型,该模型解释了交易的聚集到达,并展示了如何将其应用于比特币交易数据。这是很有趣的,原因很多。例如,对于交易来说,能够预测在短期内是否有更多的买......
  • Unity的AssetPostprocessor之Model:深入解析与实用案例 2
    UnityAssetPostprocessor中Model相关函数的实际应用UnityAssetPostprocessor是Unity引擎中的一个重要功能,它可以在导入资源时自动一些脚本,以便对资源进行自定义处理。其中,Model相关的函数可以用于对导入的3D模型进行处理,包括修改模型的材质、纹理、网格等属性。本文将介绍Model......
  • 68. 使用thymeleaf报异常:Not Found, status=404
    【从零开始学习SpirngBoot—常见异常汇总】      我们按照正常的流程编码好了controller访问访问方法/hello,对应的是/templates/hello.html文件,但是在页面中还是抛出了错误信息:WhitelabelErrorPageThisapplicationhasnoexplicitmappingfor/error,soyouaresee......
  • Python中os.system()、subprocess.run()、call()、check_output()的用法
    1.os.system()os.system()是对C语言中system()系统函数的封装,允许执行一条命令,并返回退出码(exitcode),命令输出的内容会直接打印到屏幕上,无法直接获取。示例:#test.pyimportosos.system("ls-l|greptest")#允许管道符#测试执行$ll<=======......
  • ios系统微信浏览器打开H5,调用接口status = 0失败的问题?
    最近写了一个很简单的小项目,以为不会有什么问题,今天突然说出问题了,说ios用户打开没有请求到数据。经测试,安卓,pc,都没有问题,只有ios出问题了。因为这次的涉及到时间,我以为ios时间处理上出问题了,仔细看了看,并不是,于是开启了漫长的寻找bug的过程。使用vConsole查看接口请求情况,发现......
  • 错误:rpmdb: BDB0113 Thread/process 8709/139671674841152 failed
    rpm库报错错误:rpmdb:BDB0113Thread/process8709/139671674841152failed:BDB1507ThreaddiedinBerkeleyDBlibrary错误:db5错误(-30973)来自dbenv->failchk:BDB0087DB_RUNRECOVERY:Fatalerror,rundatabaserecovery错误:无法使用db5- (-30973)打开Packages......
  • Linux 文件系统结构和组织
    Linux的文件系统结构和组织采用了层次化的树状结构,以下是对其进行详细说明并举例:根目录(/):根目录是整个文件系统的最顶层目录,所有其他目录和文件都位于根目录下。系统目录:/bin:存放系统所需的基本命令(二进制文件),如ls、cp、rm等。例如,/bin/ls是用于列出目录内容的命令。/......
  • 进程概念、进程的并发和并行、同步异步阻塞非阻塞、开启进程Process类,属性,方法、如何
    进程概念#进程、线程都是操作系统中的基本概念,也就是说进程和线程都是操作系统层面的东西,专业术语表达就是进程和线程的使用都是有操作系统来调度的.而不时有我们程序员自己来操控的在操作系统这门课里面,进程和线程是操作系统的概念,协程不是操作系统中的概念,而是我们程序员层......
  • Unity 在AssetPostprocessor内使用AssetDataBase是不安全的行为(尤其在Build前进行Lib
    https://docs.unity3d.com/Manual/AssetDatabaseCustomizingWorkflow.html在Build前进行Library的删除,读取Asset是不安全的行为,需要使用C#的IOSystem进行操作AssetImportOrderIfyouarescriptingusingtheAssetDatabaseclass,it’simportanttounderstandhowtheor......
  • static总结,抽象
    static总结,抽象static总结packagecom.oop.demo07;//staticpublicclassStudent{privatestaticintage;//静态变量privatedoublescore;//非静态变量publicvoidrun(){}//非静态方法可以包含静态方法publicstaticvoidgo(){}//静态......