在Linux / proc / sys / *伪文件上寻找(0)?

时间:2013-11-13 08:51:36

标签: linux procfs collectd

Linux /proc/sys文件描述符的语义是否有文档标准?

对它们使用seek(0)是否合适?

这是一段似乎适用于我的测试的代码:

#!/usr/bin/python
from time import sleep
with open('/proc/sys/fs/file-nr','r') as f:
    while True:
        d = f.readline()
        print d.split()[0]
        f.seek(0)
        sleep(1)

这似乎有效。但是,我想知道这是否是做这些事情的正确方法,或者我是否应该循环open() ... read() ... close()

在这种特殊情况下,我将使用collectd Python插件...所以这个特定的代码将无限期地在守护进程中运行。但是,我对一般问题的答案感兴趣。

(顺便提一下collectd有一个“打开文件/ inode”模块/插件?

1 个答案:

答案 0 :(得分:3)

是的,在proc伪文件系统上的文件上使用lseek(2)和fseek(3)是正确的。不合适的调用会产生错误,因此如果python搜索(可能是在下面调用lseek / fseek),那么它是合适的。