我希望提供一个进程,该进程仅从包含来自 http URL 的内容的本地文件中读取。该进程是一个守护进程,它被硬编码以读取当前工作目录中的特定文件,并在发生特定事件时读取它。
我无法控制触发文件读取的事件,我想提供近乎实时的数据,而不是通过 curl 脚本不断将数据转储到文件中。
我认为可能有用的是一个fifo,它在读取时执行命令。然后将其连接到 netcat 或 curl 以检索 URL 的内容(xml 数据)。这可能吗?
不可能从管道读取启动一个普通文件系统上的进程。但是还有其他方法可以满足您的需求。
您可以循环运行内容生成程序。每次打开 FIFO 进行写入时,这将阻塞,直到读取器出现。
while true; do
generate-content >fifo
done
Run Code Online (Sandbox Code Playgroud)
另一种方法是制作一个FUSE文件系统,它可以生成你喜欢的任何内容——返回给阅读器的数据是由文件系统驱动程序生成的,这是一个普通的程序,所以你可以让它做任何你喜欢的事情。但是,构建 FUSE 文件系统驱动程序需要大量工作,因此除非您找到一个已经完全满足您需要的驱动程序,否则这可能是过大的。一些可能对您有帮助的文件系统是: