启动后台进程,无阻塞地写入标准输入并从标准输出读取

启动后台进程,无阻塞地写入标准输入并从标准输出读取

我有一个程序,它从 stdin 读取并写入 stdout。在我的示例中,它是cat。我想要三个脚本来执行类似以下操作:

  1. start.sh cat将创建一个后台进程以及其他两个脚本所需的任何机制。

  2. write.sh <pid> "hello"将会写入hello先前创建的进程的标准输入,而不关闭它。

  3. read.sh <pid>将读取该过程的标准输出,仅读取自上次读取以来写入的部分,在本例中为hello,然后打印它并退出,而不等待更多输出。

我知道如果我创建一个 fifo 文件,我就可以得到 (2)。而通过将输出定向到文件并旋转它,我就可以得到 (3)。这是一个正常的解决方案吗?感觉有点临时。我有什么替代方案?

相关内容