/proc文件系统(二):/proc/<pid>/stat【转】
转自: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
2. /proc/<pid> 整体
/proc目录中有一些以数字命名的目录,它们是进程目录。
- 系统中当前运行的每一个进程在/proc下都对应一个以进程号为目录名的目录/proc/pid,它们是读取进程信息的接口。
- 在Linux 2.6.0-test6以上的版本中/proc/pid目录中有一个task目录,/proc/pid/task目录中也有一些以该进程所拥有的线程的线程号命名的目录/proc/pid/task/tid,它们是读取线程信息的接口。
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
【作者】sky
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.