这是来自文档的介绍:
/proc 文件系统是 GNU/Linux 特有的。
它是一个虚拟的文件系统,因此在该目录中的所有文件都不会消耗磁盘空间。
通过它能够非常简便地了解系统信息,尤其是其中的大部分文件是人类可阅读的(不过还是需要一些帮助)。
许多程序实际上只是从 /proc 的文件中收集信息,然后按照它们自己的格式组织后显示出来。
有一些显示进程信息的程序(top、ps 等)就是这么作的。
/proc 还是了解您系统硬件的好去处。就象那些显示进程信息的程序一样,不少程序只是提供了获取 /proc 中信息的接口。
其中还有一个特殊的子目录:/proc/sys。它让您能够显示内核参数并更改它们,而且这一更改将立即生效。
也就是说,linux系统的状态,都在这个/proc系统中有状态的映射!
而且这个东东足够简单!这是对系统资源管理分配者的巨大诱惑!
因为只需去看这里的内容,就能知道现在系统状态了!
这只是个小demo,用于获得系统cpu和内存的状态信息。
它的未来,会超进化,成为一个展示信息更有人情味的监控器。
# -*- coding: utf-8 -*- # created by vince67 Feb. 2014 # nuovince@gmail.com import datetime import subprocess class ProcMonitor(object): def __init__(self): super(ProcMonitor, self).__init__() self.meminfo = [] self.cpuinfo = [] self.time = None def get_mem_cpu_info(self): self.time = datetime.datetime.now() proc_mem = subprocess.Popen('cat /proc/meminfo', stdout=subprocess.PIPE, shell=True) self.meminfo = proc_mem.stdout.read().split('\n') proc_cpu = subprocess.Popen('cat /proc/cpuinfo', stdout=subprocess.PIPE, shell=True) self.cpuinfo = proc_cpu.stdout.read().split('\n') print '#'*40 print self.time print '#'*40 print '#'*20 + 'MEMORY INFO' + '#'*50 for mem_line in self.meminfo: print mem_line print '#'*20 + 'CPU INFO' + '#'*53 for cpu_line in self.cpuinfo: print cpu_line if __name__ == '__main__': PM = ProcMonitor() PM.get_mem_cpu_info()