linux 进程状态 dw,Linux之PID状态信息是如何来的之详解PID stat文件

  • Post author:
  • Post category:linux


摘要

在Linux上一切皆文件,哪怕你是硬件也是用文件的形式给呈现出来了,刚开始接触Linux的时候我对这话也是很莫名其妙,很难以理解,但是经过这么长时间的接触,平均每天有20%+的时间在Linux系统中度过,我现在是慢慢理解了这句话(智商不行用的时间久了点。。。),既然硬件都用文件的形式呈现,PID这些信息当然也是一样的啦,今天就来遭喷PID的stat文件。

ls /proc/ | egrep ‘[0-9]+’ | sort -n

#这条命令就是看当前系统上的进程ID,老鸟都知道的

#但是在这些纯数字的文件夹下还有其他的文件其中就有个stat文件,今天说的就是这货

先来粗略看看/proc这个文件夹

/proc/

├── 1#PID

├── acpi#貌似和电源管理相关

├── buddyinfo#每个内存区中的每个order有多少块可用,和内存碎片问题有关

├── bus#系统总线(Bus)信息,例如pci/usb等

├── cgroups#当前所有控制组的状态

├── cmdline#启动时传递给kernel的参数信息

├── cpuinfo#cpu的信息

├── crypto#内核使用的所有已安装的加密密码及细节

├── devices#已经加载的设备并分类

├── diskstats#取得磁盘信息

├── dma#已注册使用的ISA DMA频道列表

├── driver#驱动信息

├── execdomains#Linux内核当前支持的execution domains

├── fb#帧缓冲设备列表,包括数量和控制它的驱动

├── filesystems#内核当前支持的文件系统类型

├── fs#文件系统信息

├── interrupts#x86架构中的每个IRQ中断数

├── iomem#每个物理设备当前在系统内存中的映射

├── ioports#一个设备的输入输出所使用的注册端口范围

├── irq#中断请求设备信息

├── kallsyms#内核符号信息,主要用于调试

├── kcore#代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb

├── keys#如果一个进程希望了解它可以查看哪些密钥,它可以通过读取 /proc/keys 获得这些信息。

#在配置内核时,必须启用这个文件,因为它允许任何用户列出密钥数据库。

├── key-users#这个我也解释不清,看url吧:http://www.ibm.com/developerworks/cn/linux/l-key-retention.html

├── kmsg#记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理

├── kpagecount#这个文件包含一个64位值,该值表示每个page被映射的次数,通过PFN索引。

├── kpageflags#这个文件包含每一个page的64位的标记集,通过PFN索引。

├── loadavg#根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关

├── locks#内核锁住的文件列表

├── mdstat#多硬盘,RAID配置信息(md=multiple disks)

├── meminfo#RAM使用的相关信息

├── misc#其他的主要设备(设备号为10)上注册的驱动

├── modules#所有加载到内核的模块列表

├── mounts -> self/mounts #系统中使用的所有挂载

├── mtd#MTD系统分区信息,主要在嵌入式系统中

├── mtrr#系统使用的Memory Type Range Registers (MTRRs)

├── net -> self/net#网卡设备信息

│   ├── dev#显示网络适配器及统计信息

├── pagetypeinfo#貌似是内存管理相关,#http://scaiz.com/2014/08/27/linuxkernel2/

├── partitions#分区中的块分配信息

├── sched_debug#显示运行时调度程序可调优选项的当前值、CFS 统计信息和所有可用 CPU 的运行队列信息。

#当读取这个 proc 文件时,将调用 sched_debug_show() 函数并在 sched_debug.c 中定义。

├── schedstat#为所有相关的 CPU 显示特定于运行队列的统计信息以及 SMP 系统中特定于域的统计信息。

#kernel/sched_stats.h 中定义的 show_schedstat() 函数将处理 proc 条目中的读操作。

├── scsi#scsi设备信息

├── slabinfo#系统中所有活动的 slab 缓存信息

├── softirqs#内核软中断信息

├── stat#所有的CPU活动信息

├── swaps#交换空间的使用情况

├── sys#在此目录下有许多子目录。此目录中的许多项都可以用来调整系统的性能。

├── sysrq-trigger#使用echo命令来写这个文件的时候,远程root用户可以执行大多数的系统请求关键命令,

#就好像在本地终端执行一样。要写入这个文件,需要把/proc/sys/kernel/sysrq不能设置为0。这个文件对root也是不可读的

├── sysvipc#进程间通信相关的,有三个文件,shm共享内存信息, sem信号量信息, msg消息队列信息

├── timer_list#系统当前配置的所有时钟的详细情况,譬如当前系统活动的时钟源设备,时钟事件设备,tick device 等

├── timer_stats#当前系统中所有正在使用的 timer 的统计信息

├── tty#tty设备信息

├── uptime#系统已经运行了多久

├── version#Linux内核版本和gcc版本

├── vmallocinfo#虚拟地址分配映射信息

├── vmcore#内核panic时的内存映像

├── vmstat#虚拟内存统计信息

└── zoneinfo#显示内存空间的统计信息,对分析虚拟内存行为很有用

下面这个是一个PID文件夹下的所有文件树

[root@Legion22 ~]# tree /proc/3862/

/proc/3862/

├── attr

│   ├── current

│   ├── exec

│   ├── fscreate

│   ├── keycreate

│   ├── prev

│   └── sockcreate

├── autogroup

├── auxv

├── cgroup

├── clear_refs

├── cmdline

├── comm

├── coredump_filter

├── cpuset

├── cwd -> /usr/local/goproxy/bin

├── environ

├── exe -> /usr/local/goproxy/bin/goproxy

├── fd

│   ├── 0 -> /dev/pts/1

│   ├── 1 -> /dev/pts/1

│   ├── 2 -> /dev/pts/1

│   ├── 27 -> socket:[760522]

│   ├── 3 -> socket:[14716]

│   ├── 30 -> socket:[763231]

│   ├── 4 -> [eventpoll]

│   ├── 5 -> socket:[14718]

│   ├── 6 -> socket:[759640]

│   ├── 7 -> /dev/urandom

│   ├── 8 -> socket:[759634]

│   └── 9 -> socket:[800921]

├── fdinfo

│   ├── 0

│   ├── 1

│   ├── 2

│   ├── 27

│   ├── 3

│   ├── 30

│   ├── 4

│   ├── 5

│   ├── 6

│   ├── 7

│   ├── 8

│   └── 9

├── io

├── limits

├── loginuid

├── maps

├── mem

├── mountinfo

├── mounts

├── mountstats

├── net

│   ├── anycast6

│   ├── appex

│   │   ├── advAccEnable

│   │   ├── byteCacheEnable

│   │   ├── byteCacheIoFails

│   │   ├── cmd

│   │   ├── conservMode

│   │   ├── dataCompEnable

│   │   ├── hostFairEnable

│   │   ├── hostFairTcpAccSessNum

│   │   ├── hostFairTcpActSessNum

│   │   ├── hostFairUdpSessNum

│   │   ├── httpCompEnable

│   │   ├── ioctl

│   │   ├── logLevel

│   │   ├── maxTxEnable

│   │   ├── pcapEnable

│   │   ├── shaperEnable

│   │   ├── stats

│   │   ├── subnetAccEnable

│   │   ├── tcpAccEnable

│   │   ├── trackRandomLoss

│   │   ├── uapi

│   │   ├── version

│   │   ├── voipAccEnable

│   │   ├── voipSkipPackets

│   │   ├── wanBurstBytes

│   │   ├── wanIf

│   │   ├── wanInBurstBytes

│   │   ├── wanInKbps

│   │   ├── wanKbps

│   │   └── wanRateAutoDetect

│   ├── appex1

│   │   ├── advAccEnable

│   │   ├── byteCacheEnable

│   │   ├── byteCacheIoFails

│   │   ├── cmd

│   │   ├── conservMode

│   │   ├── dataCompEnable

│   │   ├── hostFairEnable

│   │   ├── hostFairTcpAccSessNum

│   │   ├── hostFairTcpActSessNum

│   │   ├── hostFairUdpSessNum

│   │   ├── httpCompEnable

│   │   ├── ioctl

│   │   ├── logLevel

│   │   ├── maxTxEnable

│   │   ├── pcapEnable

│   │   ├── shaperEnable

│   │   ├── stats

│   │   ├── subnetAccEnable

│   │   ├── tcpAccEnable

│   │   ├── trackRandomLoss

│   │   ├── version

│   │   ├── voipAccEnable

│   │   ├── voipSkipPackets

│   │   ├── wanBurstBytes

│   │   ├── wanIf

│   │   ├── wanInBurstBytes

│   │   ├── wanInKbps

│   │   ├── wanKbps

│   │   └── wanRateAutoDetect

│   ├── appex2

│   │   ├── advAccEnable

│   │   ├── byteCacheEnable

│   │   ├── byteCacheIoFails

│   │   ├── cmd

│   │   ├── conservMode

│   │   ├── dataCompEnable

│   │   ├── hostFairEnable

│   │   ├── hostFairTcpAccSessNum

│   │   ├── hostFairTcpActSessNum

│   │   ├── hostFairUdpSessNum

│   │   ├── httpCompEnable

│   │   ├── ioctl

│   │   ├── logLevel

│   │   ├── maxTxEnable

│   │   ├── pcapEnable

│   │   ├── shaperEnable

│   │   ├── stats

│   │   ├── subnetAccEnable

│   │   ├── tcpAccEnable

│   │   ├── trackRandomLoss

│   │   ├── version

│   │   ├── voipAccEnable

│   │   ├── voipSkipPackets

│   │   ├── wanBurstBytes

│   │   ├── wanIf

│   │   ├── wanInBurstBytes

│   │   ├── wanInKbps

│   │   ├── wanKbps

│   │   └── wanRateAutoDetect

│   ├── arp

│   ├── connector

│   ├── dev

│   ├── dev_mcast

│   ├── dev_snmp6

│   │   ├── eth0

│   │   └── lo

│   ├── icmp

│   ├── if_inet6

│   ├── igmp

│   ├── igmp6

│   ├── ip6_flowlabel

│   ├── ip6_mr_cache

│   ├── ip6_mr_vif

│   ├── ip_mr_cache

│   ├── ip_mr_vif

│   ├── ip_tables_matches

│   ├── ip_tables_names

│   ├── ip_tables_targets

│   ├── ipv6_route

│   ├── mcfilter

│   ├── mcfilter6

│   ├── netfilter

│   │   ├── nf_log

│   │   └── nf_queue

│   ├── netlink

│   ├── netstat

│   ├── nf_conntrack

│   ├── nf_conntrack_expect

│   ├── packet

│   ├── protocols

│   ├── psched

│   ├── ptype

│   ├── raw

│   ├── raw6

│   ├── route

│   ├── rt6_stats

│   ├── rt_acct

│   ├── rt_cache

│   ├── snmp

│   ├── snmp6

│   ├── sockstat

│   ├── sockstat6

│   ├── softnet_stat

│   ├── stat

│   │   ├── arp_cache

│   │   ├── ndisc_cache

│   │   ├── nf_conntrack

│   │   └── rt_cache

│   ├── tcp

│   ├── tcp6

│   ├── udp

│   ├── udp6

│   ├── udplite

│   ├── udplite6

│   ├── unix

│   ├── wireless

│   └── xfrm_stat

├── ns

│   ├── ipc -> ipc:[4026531839]

│   ├── mnt -> mnt:[4026531840]

│   ├── net -> net:[4026531954]

│   ├── pid -> pid:[4026531836]

│   └── uts -> uts:[4026531838]

├── numa_maps

├── oom_adj

├── oom_score

├── oom_score_adj

├── pagemap

├── personality

├── root -> /

├── sched

├── schedstat

├── sessionid

├── smaps

├── stack

├── stat

├── statm

├── status

├── syscall

├── task

│   ├── 17347

│   │   ├── attr

│   │   │   ├── current

│   │   │   ├── exec

│   │   │   ├── fscreate

│   │   │   ├── keycreate

│   │   │   ├── prev

│   │   │   └── sockcreate

│   │   ├── auxv

│   │   ├── cgroup

│   │   ├── clear_refs

│   │   ├── cmdline

│   │   ├── comm

│   │   ├── cpuset

│   │   ├── cwd -> /usr/local/goproxy/bin

│   │   ├── environ

│   │   ├── exe -> /usr/local/goproxy/bin/goproxy

│   │   ├── fd

│   │   │   ├── 0 -> /dev/pts/1

│   │   │   ├── 1 -> /dev/pts/1

│   │   │   ├── 2 -> /dev/pts/1

│   │   │   ├── 27 -> socket:[760522]

│   │   │   ├── 3 -> socket:[14716]

│   │   │   ├── 30 -> socket:[763231]

│   │   │   ├── 4 -> [eventpoll]

│   │   │   ├── 5 -> socket:[14718]

│   │   │   ├── 6 -> socket:[759640]

│   │   │   ├── 7 -> /dev/urandom

│   │   │   ├── 8 -> socket:[759634]

│   │   │   └── 9 -> socket:[800921]

│   │   ├── fdinfo

│   │   │   ├── 0

│   │   │   ├── 1

│   │   │   ├── 2

│   │   │   ├── 27

│   │   │   ├── 3

│   │   │   ├── 30

│   │   │   ├── 4

│   │   │   ├── 5

│   │   │   ├── 6

│   │   │   ├── 7

│   │   │   ├── 8

│   │   │   └── 9

│   │   ├── io

│   │   ├── limits

│   │   ├── loginuid

│   │   ├── maps

│   │   ├── mem

│   │   ├── mountinfo

│   │   ├── mounts

│   │   ├── ns

│   │   │   ├── ipc -> ipc:[4026531839]

│   │   │   ├── mnt -> mnt:[4026531840]

│   │   │   ├── net -> net:[4026531954]

│   │   │   ├── pid -> pid:[4026531836]

│   │   │   └── uts -> uts:[4026531838]

│   │   ├── numa_maps

│   │   ├── oom_adj

│   │   ├── oom_score

│   │   ├── oom_score_adj

│   │   ├── pagemap

│   │   ├── personality

│   │   ├── root -> /

│   │   ├── sched

│   │   ├── schedstat

│   │   ├── sessionid

│   │   ├── smaps

│   │   ├── stack

│   │   ├── stat

│   │   ├── statm

│   │   ├── status

│   │   ├── syscall

│   │   └── wchan

│   ├── 3862

│   │   ├── attr

│   │   │   ├── current

│   │   │   ├── exec

│   │   │   ├── fscreate

│   │   │   ├── keycreate

│   │   │   ├── prev

│   │   │   └── sockcreate

│   │   ├── auxv

│   │   ├── cgroup

│   │   ├── clear_refs

│   │   ├── cmdline

│   │   ├── comm

│   │   ├── cpuset

│   │   ├── cwd -> /usr/local/goproxy/bin

│   │   ├── environ

│   │   ├── exe -> /usr/local/goproxy/bin/goproxy

│   │   ├── fd

│   │   │   ├── 0 -> /dev/pts/1

│   │   │   ├── 1 -> /dev/pts/1

│   │   │   ├── 2 -> /dev/pts/1

│   │   │   ├── 27 -> socket:[760522]

│   │   │   ├── 3 -> socket:[14716]

│   │   │   ├── 30 -> socket:[763231]

│   │   │   ├── 4 -> [eventpoll]

│   │   │   ├── 5 -> socket:[14718]

│   │   │   ├── 6 -> socket:[759640]

│   │   │   ├── 7 -> /dev/urandom

│   │   │   ├── 8 -> socket:[759634]

│   │   │   └── 9 -> socket:[800921]

│   │   ├── fdinfo

│   │   │   ├── 0

│   │   │   ├── 1

│   │   │   ├── 2

│   │   │   ├── 27

│   │   │   ├── 3

│   │   │   ├── 30

│   │   │   ├── 4

│   │   │   ├── 5

│   │   │   ├── 6

│   │   │   ├── 7

│   │   │   ├── 8

│   │   │   └── 9

│   │   ├── io

│   │   ├── limits

│   │   ├── loginuid

│   │   ├── maps

│   │   ├── mem

│   │   ├── mountinfo

│   │   ├── mounts

│   │   ├── ns

│   │   │   ├── ipc -> ipc:[4026531839]

│   │   │   ├── mnt -> mnt:[4026531840]

│   │   │   ├── net -> net:[4026531954]

│   │   │   ├── pid -> pid:[4026531836]

│   │   │   └── uts -> uts:[4026531838]

│   │   ├── numa_maps

│   │   ├── oom_adj

│   │   ├── oom_score

│   │   ├── oom_score_adj

│   │   ├── pagemap

│   │   ├── personality

│   │   ├── root -> /

│   │   ├── sched

│   │   ├── schedstat

│   │   ├── sessionid

│   │   ├── smaps

│   │   ├── stack

│   │   ├── stat

│   │   ├── statm

│   │   ├── status

│   │   ├── syscall

│   │   └── wchan

│   ├── 3863

│   │   ├── attr

│   │   │   ├── current

│   │   │   ├── exec

│   │   │   ├── fscreate

│   │   │   ├── keycreate

│   │   │   ├── prev

│   │   │   └── sockcreate

│   │   ├── auxv

│   │   ├── cgroup

│   │   ├── clear_refs

│   │   ├── cmdline

│   │   ├── comm

│   │   ├── cpuset

│   │   ├── cwd -> /usr/local/goproxy/bin

│   │   ├── environ

│   │   ├── exe -> /usr/local/goproxy/bin/goproxy

│   │   ├── fd

│   │   │   ├── 0 -> /dev/pts/1

│   │   │   ├── 1 -> /dev/pts/1

│   │   │   ├── 2 -> /dev/pts/1

│   │   │   ├── 27 -> socket:[760522]

│   │   │   ├── 3 -> socket:[14716]

│   │   │   ├── 30 -> socket:[763231]

│   │   │   ├── 4 -> [eventpoll]

│   │   │   ├── 5 -> socket:[14718]

│   │   │   ├── 6 -> socket:[759640]

│   │   │   ├── 7 -> /dev/urandom

│   │   │   ├── 8 -> socket:[759634]

│   │   │   └── 9 -> socket:[800921]

│   │   ├── fdinfo

│   │   │   ├── 0

│   │   │   ├── 1

│   │   │   ├── 2

│   │   │   ├── 27

│   │   │   ├── 3

│   │   │   ├── 30

│   │   │   ├── 4

│   │   │   ├── 5

│   │   │   ├── 6

│   │   │   ├── 7

│   │   │   ├── 8

│   │   │   └── 9

│   │   ├── io

│   │   ├── limits

│   │   ├── loginuid

│   │   ├── maps

│   │   ├── mem

│   │   ├── mountinfo

│   │   ├── mounts

│   │   ├── ns

│   │   │   ├── ipc -> ipc:[4026531839]

│   │   │   ├── mnt -> mnt:[4026531840]

│   │   │   ├── net -> net:[4026531954]

│   │   │   ├── pid -> pid:[4026531836]

│   │   │   └── uts -> uts:[4026531838]

│   │   ├── numa_maps

│   │   ├── oom_adj

│   │   ├── oom_score

│   │   ├── oom_score_adj

│   │   ├── pagemap

│   │   ├── personality

│   │   ├── root -> /

│   │   ├── sched

│   │   ├── schedstat

│   │   ├── sessionid

│   │   ├── smaps

│   │   ├── stack

│   │   ├── stat

│   │   ├── statm

│   │   ├── status

│   │   ├── syscall

│   │   └── wchan

│   ├── 3864

│   │   ├── attr

│   │   │   ├── current

│   │   │   ├── exec

│   │   │   ├── fscreate

│   │   │   ├── keycreate

│   │   │   ├── prev

│   │   │   └── sockcreate

│   │   ├── auxv

│   │   ├── cgroup

│   │   ├── clear_refs

│   │   ├── cmdline

│   │   ├── comm

│   │   ├── cpuset

│   │   ├── cwd -> /usr/local/goproxy/bin

│   │   ├── environ

│   │   ├── exe -> /usr/local/goproxy/bin/goproxy

│   │   ├── fd

│   │   │   ├── 0 -> /dev/pts/1

│   │   │   ├── 1 -> /dev/pts/1

│   │   │   ├── 2 -> /dev/pts/1

│   │   │   ├── 27 -> socket:[760522]

│   │   │   ├── 3 -> socket:[14716]

│   │   │   ├── 30 -> socket:[763231]

│   │   │   ├── 4 -> [eventpoll]

│   │   │   ├── 5 -> socket:[14718]

│   │   │   ├── 6 -> socket:[759640]

│   │   │   ├── 7 -> /dev/urandom

│   │   │   ├── 8 -> socket:[759634]

│   │   │   └── 9 -> socket:[800921]

│   │   ├── fdinfo

│   │   │   ├── 0

│   │   │   ├── 1

│   │   │   ├── 2

│   │   │   ├── 27

│   │   │   ├── 3

│   │   │   ├── 30

│   │   │   ├── 4

│   │   │   ├── 5

│   │   │   ├── 6

│   │   │   ├── 7

│   │   │   ├── 8

│   │   │   └── 9

│   │   ├── io

│   │   ├── limits

│   │   ├── loginuid

│   │   ├── maps

│   │   ├── mem

│   │   ├── mountinfo

│   │   ├── mounts

│   │   ├── ns

│   │   │   ├── ipc -> ipc:[4026531839]

│   │   │   ├── mnt -> mnt:[4026531840]

│   │   │   ├── net -> net:[4026531954]

│   │   │   ├── pid -> pid:[4026531836]

│   │   │   └── uts -> uts:[4026531838]

│   │   ├── numa_maps

│   │   ├── oom_adj

│   │   ├── oom_score

│   │   ├── oom_score_adj

│   │   ├── pagemap

│   │   ├── personality

│   │   ├── root -> /

│   │   ├── sched

│   │   ├── schedstat

│   │   ├── sessionid

│   │   ├── smaps

│   │   ├── stack

│   │   ├── stat

│   │   ├── statm

│   │   ├── status

│   │   ├── syscall

│   │   └── wchan

│   ├── 3865

│   │   ├── attr

│   │   │   ├── current

│   │   │   ├── exec

│   │   │   ├── fscreate

│   │   │   ├── keycreate

│   │   │   ├── prev

│   │   │   └── sockcreate

│   │   ├── auxv

│   │   ├── cgroup

│   │   ├── clear_refs

│   │   ├── cmdline

│   │   ├── comm

│   │   ├── cpuset

│   │   ├── cwd -> /usr/local/goproxy/bin

│   │   ├── environ

│   │   ├── exe -> /usr/local/goproxy/bin/goproxy

│   │   ├── fd

│   │   │   ├── 0 -> /dev/pts/1

│   │   │   ├── 1 -> /dev/pts/1

│   │   │   ├── 2 -> /dev/pts/1

│   │   │   ├── 27 -> socket:[760522]

│   │   │   ├── 3 -> socket:[14716]

│   │   │   ├── 30 -> socket:[763231]

│   │   │   ├── 4 -> [eventpoll]

│   │   │   ├── 5 -> socket:[14718]

│   │   │   ├── 6 -> socket:[759640]

│   │   │   ├── 7 -> /dev/urandom

│   │   │   ├── 8 -> socket:[759634]

│   │   │   └── 9 -> socket:[800921]

│   │   ├── fdinfo

│   │   │   ├── 0

│   │   │   ├── 1

│   │   │   ├── 2

│   │   │   ├── 27

│   │   │   ├── 3

│   │   │   ├── 30

│   │   │   ├── 4

│   │   │   ├── 5

│   │   │   ├── 6

│   │   │   ├── 7

│   │   │   ├── 8

│   │   │   └── 9

│   │   ├── io

│   │   ├── limits

│   │   ├── loginuid

│   │   ├── maps

│   │   ├── mem

│   │   ├── mountinfo

│   │   ├── mounts

│   │   ├── ns

│   │   │   ├── ipc -> ipc:[4026531839]

│   │   │   ├── mnt -> mnt:[4026531840]

│   │   │   ├── net -> net:[4026531954]

│   │   │   ├── pid -> pid:[4026531836]

│   │   │   └── uts -> uts:[4026531838]

│   │   ├── numa_maps

│   │   ├── oom_adj

│   │   ├── oom_score

│   │   ├── oom_score_adj

│   │   ├── pagemap

│   │   ├── personality

│   │   ├── root -> /

│   │   ├── sched

│   │   ├── schedstat

│   │   ├── sessionid

│   │   ├── smaps

│   │   ├── stack

│   │   ├── stat

│   │   ├── statm

│   │   ├── status

│   │   ├── syscall

│   │   └── wchan

│   ├── 3866

│   │   ├── attr

│   │   │   ├── current

│   │   │   ├── exec

│   │   │   ├── fscreate

│   │   │   ├── keycreate

│   │   │   ├── prev

│   │   │   └── sockcreate

│   │   ├── auxv

│   │   ├── cgroup

│   │   ├── clear_refs

│   │   ├── cmdline

│   │   ├── comm

│   │   ├── cpuset

│   │   ├── cwd -> /usr/local/goproxy/bin

│   │   ├── environ

│   │   ├── exe -> /usr/local/goproxy/bin/goproxy

│   │   ├── fd

│   │   │   ├── 0 -> /dev/pts/1

│   │   │   ├── 1 -> /dev/pts/1

│   │   │   ├── 2 -> /dev/pts/1

│   │   │   ├── 27 -> socket:[760522]

│   │   │   ├── 3 -> socket:[14716]

│   │   │   ├── 30 -> socket:[763231]

│   │   │   ├── 4 -> [eventpoll]

│   │   │   ├── 5 -> socket:[14718]

│   │   │   ├── 6 -> socket:[759640]

│   │   │   ├── 7 -> /dev/urandom

│   │   │   ├── 8 -> socket:[759634]

│   │   │   └── 9 -> socket:[800921]

│   │   ├── fdinfo

│   │   │   ├── 0

│   │   │   ├── 1

│   │   │   ├── 2

│   │   │   ├── 27

│   │   │   ├── 3

│   │   │   ├── 30

│   │   │   ├── 4

│   │   │   ├── 5

│   │   │   ├── 6

│   │   │   ├── 7

│   │   │   ├── 8

│   │   │   └── 9

│   │   ├── io

│   │   ├── limits

│   │   ├── loginuid

│   │   ├── maps

│   │   ├── mem

│   │   ├── mountinfo

│   │   ├── mounts

│   │   ├── ns

│   │   │   ├── ipc -> ipc:[4026531839]

│   │   │   ├── mnt -> mnt:[4026531840]

│   │   │   ├── net -> net:[4026531954]

│   │   │   ├── pid -> pid:[4026531836]

│   │   │   └── uts -> uts:[4026531838]

│   │   ├── numa_maps

│   │   ├── oom_adj

│   │   ├── oom_score

│   │   ├── oom_score_adj

│   │   ├── pagemap

│   │   ├── personality

│   │   ├── root -> /

│   │   ├── sched

│   │   ├── schedstat

│   │   ├── sessionid

│   │   ├── smaps

│   │   ├── stack

│   │   ├── stat

│   │   ├── statm

│   │   ├── status

│   │   ├── syscall

│   │   └── wchan

│   ├── 3959

│   │   ├── attr

│   │   │   ├── current

│   │   │   ├── exec

│   │   │   ├── fscreate

│   │   │   ├── keycreate

│   │   │   ├── prev

│   │   │   └── sockcreate

│   │   ├── auxv

│   │   ├── cgroup

│   │   ├── clear_refs

│   │   ├── cmdline

│   │   ├── comm

│   │   ├── cpuset

│   │   ├── cwd -> /usr/local/goproxy/bin

│   │   ├── environ

│   │   ├── exe -> /usr/local/goproxy/bin/goproxy

│   │   ├── fd

│   │   │   ├── 0 -> /dev/pts/1

│   │   │   ├── 1 -> /dev/pts/1

│   │   │   ├── 2 -> /dev/pts/1

│   │   │   ├── 27 -> socket:[760522]

│   │   │   ├── 3 -> socket:[14716]

│   │   │   ├── 30 -> socket:[763231]

│   │   │   ├── 4 -> [eventpoll]

│   │   │   ├── 5 -> socket:[14718]

│   │   │   ├── 6 -> socket:[759640]

│   │   │   ├── 7 -> /dev/urandom

│   │   │   ├── 8 -> socket:[759634]

│   │   │   └── 9 -> socket:[800921]

│   │   ├── fdinfo

│   │   │   ├── 0

│   │   │   ├── 1

│   │   │   ├── 2

│   │   │   ├── 27

│   │   │   ├── 3

│   │   │   ├── 30

│   │   │   ├── 4

│   │   │   ├── 5

│   │   │   ├── 6

│   │   │   ├── 7

│   │   │   ├── 8

│   │   │   └── 9

│   │   ├── io

│   │   ├── limits

│   │   ├── loginuid

│   │   ├── maps

│   │   ├── mem

│   │   ├── mountinfo

│   │   ├── mounts

│   │   ├── ns

│   │   │   ├── ipc -> ipc:[4026531839]

│   │   │   ├── mnt -> mnt:[4026531840]

│   │   │   ├── net -> net:[4026531954]

│   │   │   ├── pid -> pid:[4026531836]

│   │   │   └── uts -> uts:[4026531838]

│   │   ├── numa_maps

│   │   ├── oom_adj

│   │   ├── oom_score

│   │   ├── oom_score_adj

│   │   ├── pagemap

│   │   ├── personality

│   │   ├── root -> /

│   │   ├── sched

│   │   ├── schedstat

│   │   ├── sessionid

│   │   ├── smaps

│   │   ├── stack

│   │   ├── stat

│   │   ├── statm

│   │   ├── status

│   │   ├── syscall

│   │   └── wchan

│   └── 4055

│   ├── attr

│   │   ├── current

│   │   ├── exec

│   │   ├── fscreate

│   │   ├── keycreate

│   │   ├── prev

│   │   └── sockcreate

│   ├── auxv

│   ├── cgroup

│   ├── clear_refs

│   ├── cmdline

│   ├── comm

│   ├── cpuset

│   ├── cwd -> /usr/local/goproxy/bin

│   ├── environ

│   ├── exe -> /usr/local/goproxy/bin/goproxy

│   ├── fd

│   │   ├── 0 -> /dev/pts/1

│   │   ├── 1 -> /dev/pts/1

│   │   ├── 2 -> /dev/pts/1

│   │   ├── 27 -> socket:[760522]

│   │   ├── 3 -> socket:[14716]

│   │   ├── 30 -> socket:[763231]

│   │   ├── 4 -> [eventpoll]

│   │   ├── 5 -> socket:[14718]

│   │   ├── 6 -> socket:[759640]

│   │   ├── 7 -> /dev/urandom

│   │   ├── 8 -> socket:[759634]

│   │   └── 9 -> socket:[800921]

│   ├── fdinfo

│   │   ├── 0

│   │   ├── 1

│   │   ├── 2

│   │   ├── 27

│   │   ├── 3

│   │   ├── 30

│   │   ├── 4

│   │   ├── 5

│   │   ├── 6

│   │   ├── 7

│   │   ├── 8

│   │   └── 9

│   ├── io

│   ├── limits

│   ├── loginuid

│   ├── maps

│   ├── mem

│   ├── mountinfo

│   ├── mounts

│   ├── ns

│   │   ├── ipc -> ipc:[4026531839]

│   │   ├── mnt -> mnt:[4026531840]

│   │   ├── net -> net:[4026531954]

│   │   ├── pid -> pid:[4026531836]

│   │   └── uts -> uts:[4026531838]

│   ├── numa_maps

│   ├── oom_adj

│   ├── oom_score

│   ├── oom_score_adj

│   ├── pagemap

│   ├── personality

│   ├── root -> /

│   ├── sched

│   ├── schedstat

│   ├── sessionid

│   ├── smaps

│   ├── stack

│   ├── stat

│   ├── statm

│   ├── status

│   ├── syscall

│   └── wchan

└── wchan

70 directories, 741 files

最后我们来看看PID文件下的stat文件

[root@Legion22 ~]# cat /proc/3862/stat

3862 (goproxy) S 3680 3862 3680 34817 3862 4202752 31001 0 186 0 7100 7036 0 0 20 0 8 0 32751 299028480 1928 18446744073709551615 4194368 7856416 140723322295984 140723322295496 4618051 0 0 0 2143420159 18446744073709551615 0 0 17 0 0 0 6 0 0

[root@Legion22 ~]# cat /proc/3862/stat | awk ‘{for (i=1;i<=NF;i++){print $i}}’

3862 #表示进程的PID

(goproxy) #表示进程的名称

S #表示进程的状态[R:runnign, S:sleeping (TASK_INTERRUPTIBLE), D:disk sleep (TASK_UNINTERRUPTIBLE), T: stopped, T:tracing stop,Z:zombie, X:dead]

3680 #表示进程的PPID,即父进程的PID

3862 #表示线程组号

3680 #表示该任务所在的会话组ID

34817 #表示该任务的tty终端的设备号,INT(34817/256)=主设备号,(34817-主设备号)=次设备号

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

4202752 #表示进程标志位,查看该任务的特性

31001 #表示该任务不需要从硬盘拷数据而发生的缺页(次缺页)的次数

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

186 #表示该任务需要从硬盘拷数据而发生的缺页(主缺页)的次数

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

7100 #表示该任务在用户态运行的时间,单位为jiffies

7036 #表示该任务在核心态运行的时间,单位为jiffies

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

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

20 #表示进程的优先级

0 #表示进程的nice值

8 #表示进程的线程数量

0 #(已被硬编码为0) The time in jiffies before the next SIGALRM is sent to the process due to an interval timer.

32751 #表示进程的启动时间,这个时间是用jiffies表示的从系统启动到进程启动的时间。The time in jiffies the process started after system boot.

299028480 #表示该任务的虚拟地址空间大小

1946 #表示该任务当前驻留物理地址空间的大小,Number of pages the process has in real memory,minu 3 for administrative purpose.这些页可能用于代码,数据和栈。

18446744073709551615 #表示该任务能驻留物理地址空间的最大值(bytes)

4194368 #表示该任务在虚拟地址空间的代码段的起始地址

7856416 #表示该任务在虚拟地址空间的代码段的结束地址

140723322295984 #表示该任务在虚拟地址空间的栈的结束地址

140723322295496 #表示esp(32 位堆栈指针) 的当前值, 与在进程的内核堆栈页得到的一致.

4618051 #表示指向将要执行的指令的指针, EIP(32 位指令指针)的当前值.

0 #表示待处理信号的位图,记录发送给进程的普通信号

0 #表示阻塞信号的位图

0 #表示忽略的信号的位图

2143420159 #表示被俘获的信号的位图

18446744073709551615

0

0

17

0

0

0

6

0

0

[root@Legion22 ~]# cat /proc/3862/stat | awk ‘{for (i=1;i<=NF;i++){a++}}END{print a}’

44

[root@Legion22 ~]#

从上面可以看出这个文件中以空格为分割有44个项目,现在就来说说他们都是什么含义