本文将展示如何使用Linux下的proc文件系统通过一个简单易懂的例子得到的过程的信息。通过proc文件系统获得的信息主要是关于进程使用的虚拟内存,对实际的内存和信号机制的信息,并与其他监测工具Linux的匹配,这样我们可以有一个全面掌握系统的操作。首先,提供一个proc文件系统简介。



proc文件系统是一个虚拟的文件系统,它是通过文件系统的接口实现,并用于输出系统的状态。文件系统,提供对操作系统本身和应用程序之间的通信接口,内部数据信息的应用可以安全、方便地获取操作条件和当前配置信息的核心系统,可以修改一些系统。此外,因为程序在文件系统的接口实现,用户可以访问他们像访问普通文件,但它只存在于内存中,并不存在真正的物理磁盘,在系统重新启动后,电源关闭下来,所有的数据和信息系统中的n将消失。



表1显示了文件系统中的一些重要文件和目录。



表1重要的进程文件系统文件和目录



文档或目录描述



1关于进程1的信息目录。每个进程都有一个目录,命名为它的进程号。



/ / cpuinfo触发处理器的信息,如类型,制造商,模型,和性能



当前运行的核心设备的核心配置的设备驱动程序列表



显示当前的DMA通道。



/ proc /文件系统的核心配置文件系统



中断显示中断的使用。



/ / ioports触发的我/ O端口,是目前使用的



/ / kcore触发系统物理内存镜像



消息从/ proc / kmsg核心输出发送到syslog



/ proc / ksyms核心符号表



/ / loadavg触发系统平均负载



/ proc /内存信息内存使用信息,包括物理内存和交换



当前的核心模块是由哪些模块加载的



NET网络协议状态信息



系统的不同状态



版本核心版本



系统启动的时间长度



值得注意的是,上述文件提供一个可读的文本文件,有时可能是不可读的格式。有许多命令已格式化的更容易阅读。例如,免费程序读取/ proc /内存信息,将给予一千个字节的字节数(添加了一些信息)。



下面的示例将用于演示如何使用过程文件系统获取有关过程的信息。



首先,我们使用vi编辑器创建一个C源文件并编译它以形成目标文件。该文件的主要功能是计算和存储在根目录中。



# CD / / /根目录切换



#。 / / /运行计算程序,对该进程的名称生成程序



使用ps命令,您可以找到一个进程,例如在系统中计算运行:



# PS



210861.2根0.11344224分/ 0 R 21:20 0:11 /计算。



hellip;hellip;



该过程的基本信息存储在文件系统中,其中特定的位置在目录中,通过使用下面的命令,您可以看到系统中正在运行的进程的信息:



LS / / / proc #查看 /proc目录的内容



下面存储用于显示/系统操作过程的信息目录,每个进程对应一个目录,而蓝色为2108个用例,用目录信息处理该进程。



117901922204920838 fs的内存信息互换



101799192320562108 IDE MISC系统



111809192420632111 sysvipc APM中断模块



1491181819252065 2138总线iomem坐骑TTY



1550182919682067 2162 ioports CmdLine MTRR的正常运行时间



1554189319692069 2163 cpuinfo IRQ网络版



157219197820713设备kcore分区



15911902220734 DMA kmsg PCI



16701911203220745 ksyms SCSI驱动程序



17201919204320796 execdomains loadavg自



17571920204520817 FB锁的slab信息



177119212047208277文件系统mdstat统计



2108 / / # CD切换到2108目录,便于详细查看进程信息



# LS / /列出进程的详细状态信息文件



CmdLine CWD环境exe FD图MEM坐骑根统计statm状态



在这些文件中,状态文件非常重要,其中包含许多关于过程的有用信息。用户可以从这个文件获取信息。



#猫/状态使用cat命令列出状态文件的内容



名称:计算进程名称



状态:r(运行)进程运行状态



2108 / /线程组号:进程组ID



pid:2108 id进程



2083 / / PPID:家长身份



0 / / tracerpid:调试进程ID



0000 / / UID:到程序UID对应的过程



0000 / / GID GID的程序对应的过程:



fdsize:256 / /过程中使用的文件句柄的大小



组:012341010 组信息



进程内存和实际内存使用的虚拟内存、信息信号机制



vmsize:1344 KB



VmLck:0 KB



vmrss:224 KB



vmdata:12 KB



VmStk:16 KB



VmExe:4 KB



vmlib:1292 KB



sigpnd:0000000000000000



sigblk:0000000000000000



sigign:8000000000000000



sigcgt:0000000000000000



capinh:0000000000000000



capprm:00000000 fffff EFF



capeff:00000000 fffff EFF



这样,我们就可以知道进程所使用的虚拟内存的信息,以及实际的内存和信号机制。