Python 写入 Linux /proc/mystats 文件
有很多文章介绍如何从Linux的/proc/xxx文件中读取数据,比如:我该如何用Python将/proc/net/dev的输出解析成每个接口的键值对?
我该如何设置一个Python应用程序,来创建并写入我自己的/proc/mystats文件,以便其他进程可以监控它?
3 个回答
0
其实,你可以像编辑普通文件一样编辑 /proc/xxx
文件,不过有一些限制。当我尝试修改连接跟踪表的大小时,也遇到了同样的问题。这是我的代码,运行得很好。
# 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()
4
我认为只有内核模块才能在procfs文件系统中创建条目。一旦内核模块创建了一个条目,它就可以控制权限,然后你就可以像操作文件系统中的任何文件一样读取或写入它。
不过,如果你只是想在进程之间共享数据,使用procfs就有点过于复杂了。你有没有考虑过使用管道、共享内存,或者干脆在文件系统中使用一个普通文件呢?其实有很多种进程间通信的方法,而你似乎选择了最复杂的一种。
4
你不能这么做。/proc/
是一个 特殊的文件系统,它用来展示内核知道的关于各种进程的信息,这些都是由内核来管理的。
如果你想把运行中的信息写入一个文件,可以使用其他目录,比如,firefox 会把东西写到 $HOME/.mozilla
这个地方。