linux - seek(0) 在 Linux/proc/sys/* 伪文件上?

标签 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() ... 关闭()

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

(顺便说一句,collectd 有一个“打开文件/inodes”模块/插件)吗?

最佳答案

是的,对 proc 伪文件系统上的文件使用 lseek(2) 和 fseek(3) 是正确的。不合适的调用会导致错误,因此如果 python seek(可能在下面调用 lseek/fseek)有效,它就是合适的。

关于linux - seek(0) 在 Linux/proc/sys/* 伪文件上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19949283/

相关文章:

elasticsearch - Logstash收集的编解码器从收集的空消息中获取空消息

linux - Collectd-用户 :plugin How to Use

linux - Linux TAR 排除是如何工作的?

c - 接收从 "supernet"发送的本地广播包

linux - 卸载 proc 文件系统

linux-kernel - 如何在/proc/driver 下创建 proc 条目?

linux - 我们可以在没有图形支持 (GUI) 的情况下访问虚拟数据端口管理工具吗?

linux - GCC/ELF - 我的符号从哪里来?

linux - 访问/处理

docker - 如何在收集的帮助下从uwsgi收集指标