zoukankan      html  css  js  c++  java
  • /proc文件系统(二):/proc/<pid>/stat

    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

  • 相关阅读:
    UT斯达康 G680手机那些事儿
    VoIP使用总结
    Test
    Remove "Click here to enable Instant Search"
    常用的在线播放(电台和电视台)
    Sipdroid Error “Registration failed (404 not found)”
    通过Word 2007发布Blog
    【Go反射】读取对象
    【Go反射】修改对象
    【爬虫】callback=jQuery+数字在爬虫中如何模拟
  • 原文地址:https://www.cnblogs.com/Jimmy1988/p/10045601.html
Copyright © 2011-2022 走看看