动态或虚拟文件内容,类似于 /sys/*

动态或虚拟文件内容,类似于 /sys/*

想象一下,你想要一个文件 - 例如 /etc/hosts - 但每次读取文件时,而不是从文件系统读取,其内容是应用程序的输出 - 例如在 apache 的 sites-enabled 中 greps 配置的脚本

/sys我觉得这应该是可能的,例如内核代码生成了和中的几乎所有内容/proc,我相信它会作为虚拟文件系统挂载。是否已经存在某种通用的用户空间虚拟文件系统覆盖,允许我将脚本或二进制文件委托为每次读取文件时应显示的输出,或者这种用例是否很少出现?

(我认为误用可能会使系统速度显著降低,而且可能有更好的方法 - 在上述情况下,每 10 分钟运行一次 cron 任务会更好 - 但我很好奇以前是否遇到过并尝试过这种情况)

答案1

是的,它叫保险丝内核允许在用户空间中实现功能齐全的文件系统,您可能已经使用过其中一些:sshfs、curlftpfs、ntfs-3g、archivefs、wikipediafs……

FUSE 接口比你描述的要低级一些(文件系统仍然必须单独处理打开、读取、写入......),但它具有从 Python 到狂欢。它们中的大多数都有一个“hello world”示例,可以进行调整以提供外部程序的输出作为数据。

FUSE 目前适用于 Linux、各种 BSD、macOS、Solaris……

相关内容