pid窥探进程信息

proc文件系统

/proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取/proc目录中的文件时,proc文件系统是动态从系统内核读出所需信息并提交的。

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


/proc/stat文件

该文件包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。不同内核版本中该文件的格式可能不大一致,以下通过实例来说明数据该文件中各字段的含义。

[root@localhost ~]# cat /proc/6873/stat

6873 (a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0 3 0 5882654 1409024 56 4294967295 134512640 134513720 3215579040 0 2097798 0 0 0 0 0 0 0 17 0 0 0 [root@localhost ~]#

每个参数意思为:

参数                                                       解释

pid=6873                                              进程(包括轻量级进程,即线程)号

comm=a.out                                          应用程序或命令的名字

task_state=R                                        任务的状态,R:runnign, S:sleeping (TASK_INTERRUPTIBLE), D:disk sleep (TASK_UNINTERRUPTIBLE), T: stopped, T:tracing stop,Z:zombie, X:dead

ppid=6723                                            父进程ID

pgid=6873                                            线程组号

sid=6723                                              该任务所在的会话组ID

tty_nr=34819(pts/3)                            该任务的tty终端的设备号,INT(34817/256)=主设备号,(34817-主设备号)=次设备号

tty_pgrp=6873                                     终端的进程组号,当前运行在该任务所在终端的前台任务(包括shell 应用程序)的PID。

task->flags=8388608                           进程标志位,查看该任务的特性

min_flt=77                                            该任务不需要从硬盘拷数据而发生的缺页(次缺页)的次数

cmin_flt=0                                            累计的该任务的所有的waited-for进程曾经发生的次缺页的次数目

maj_flt=0                                              该任务需要从硬盘拷数据而发生的缺页(主缺页)的次数

cmaj_flt=0                                            累计的该任务的所有的waited-for进程曾经发生的主缺页的次数目

utime=1587                                          该任务在用户态运行的时间,单位为jiffies

stime=1                                                该任务在核心态运行的时间,单位为jiffies

cutime=0                                              累计的该任务的所有的waited-for进程曾经在用户态运行的时间,单位为jiffies

cstime=0                                              累计的该任务的所有的waited-for进程曾经在核心态运行的时间,单位为jiffies

priority=25                                           任务的动态优先级

nice=0                                                  任务的静态优先级

num_threads=3                                    该任务所在的线程组里线程的个数

it_real_value=0                                     由于计时间隔导致的下一个 SIGALRM 发送进程的时延,以 jiffy 为单位.

start_time=5882654                             该任务启动的时间,单位为jiffies

vsize=1409024(page)                       该任务的虚拟地址空间大小

rss=56(page)                                        该任务当前驻留物理地址空间的大小

Number of pages the process has in real memory,minu 3 for administrative purpose.

这些页可能用于代码,数据和栈。

rlim=4294967295(bytes)                  该任务能驻留物理地址空间的最大值

start_code=134512640                        该任务在虚拟地址空间的代码段的起始地址

end_code=134513720                         该任务在虚拟地址空间的代码段的结束地址

start_stack=3215579040                     该任务在虚拟地址空间的栈的结束地址

kstkesp=0                                            esp(32 位堆栈指针) 的当前值, 与在进程的内核堆栈页得到的一致.

kstkeip=2097798                                 指向将要执行的指令的指针, EIP(32 位指令指针)的当前值.

pendingsig=0                                       待处理信号的位图,记录发送给进程的普通信号

block_sig=0                                          阻塞信号的位图

sigign=0                                               忽略的信号的位图

sigcatch=082985                                  被俘获的信号的位图

wchan=0                                               如果该进程是睡眠状态,该值给出调度的调用点

nswap                                                   被swapped的页数,当前没用

cnswap                                                 所有子进程被swapped的页数的和,当前没用

exit_signal=17                                      该进程结束时,向父进程所发送的信号

task_cpu(task)=0                                  运行在哪个CPU上

task_rt_priority=0                                 实时进程的相对优先级别

task_policy=0                                        进程的调度策略,0=非实时进程,1=FIFO实时进程;2=RR实时进程

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容