Python写入linux / proc / mystats文件

时间:2011-08-22 15:31:21

标签: python

有几篇文章展示了如何从linux / proc / xxx文件中读取数据,例如:How can I parse the output of /proc/net/dev into key:value pairs per interface using Python?

如何设置Python应用程序来创建和写入我自己的/ proc / mystats文件,以便其他进程可以监视它?

3 个答案:

答案 0 :(得分:4)

我相信只有内核模块可以在procfs文件系统中创建条目。一旦内核模块创建了一个条目,它就可以控制权限,然后你可以像文件系统上的任何文件一样读/写它。

但是,如果您只是想在进程之间共享数据,那么使用procfs会造成严重的过度杀伤。您是否考虑过管道,共享内存,甚至只是文件系统上的常规文件? IPC有很多机制,你似乎选择了最有争议的机制。

答案 1 :(得分:3)

你做不到。 /proc/是一个special filesystem,用于公开内核对各种进程的了解信息,由内核管理。

如果要将运行信息写入文件,请使用其他目录 - 例如,firefox将内容写入$HOME/.mozilla

答案 2 :(得分:0)

实际上,您可以像普通文件一样编辑/proc/xxx文件,但有一些限制。当我试图更改conntrack表的大小时,我遇到了同样的问题。这是我的代码,效果很好。

# set totalsize
with open('/proc/.../nf_conntrack_max', 'r+') as f:
    f.write(talbe_size)
    f.close()


# set buckets
with open('/sys/.../hashsize', 'r+') as f:
    f.write(bucket_size)
    f.close()