通过FIFO重定向stdin

时间:2010-12-30 01:18:02

标签: linux shell stdin fifo mknod

我在GNU / Linux下运行一个服务器应用程序(用Java编写),它接受输入(来自stdin,我猜)并解释它运行一些命令。我不想在终端窗口中运行应用程序(我想运行一个守护进程),但我仍然希望能够随时输入命令。我以为我可以用fifos做到这一点,所以我用mknod创建它。问题是 cat fifofile> java ... cat fifofile |由于某种原因,java ... 因“找不到文件”错误而失败。

只使用cat进行读写,而fifo可以完美运行。

有没有办法解决这个问题,或者以其他方式实现同​​样的目标?

2 个答案:

答案 0 :(得分:8)

那么,我的世界?执行此操作的最佳方法是为应用程序的控制台部分提供真正的tty。 screen是一种简单的方法。

答案 1 :(得分:1)

你试过java < fifofile吗?像exec 3<&0; exec 0<fifofile; java这样的东西呢?

你使用的是什么外壳?如果您使用的是支持它们的shell,则可以使用进程替换或协同处理。