系统相关
首页 > 系统相关> > 在Linux / proc / sys / *伪文件上寻求(0)?

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

作者:互联网

是否有针对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插件一起使用…,因此该特殊代码将在守护程序中无限期运行.但是,我对一般问题的答案很感兴趣.

(顺便说一下,是否有用于收集的“打开文件/节点”模块/插件)?

解决方法:

是的,在proc伪文件系统上的文件上使用lseek(2)和fseek(3)是适当的.不合适的调用将导致错误,因此,如果python seek(在下面调用lseek / fseek)可以正常工作.

标签:procfs,collectd,linux
来源: https://codeday.me/bug/20191122/2060295.html