使用FIFO和链接从网页控制远程进程(Linux)

使用FIFO和链接从网页控制远程进程(Linux),linux,process,pipe,webpage,mkfifo,Linux,Process,Pipe,Webpage,Mkfifo,我在linux服务器中使用mpg123,我试图通过网页(apache)控制它,使用链接发送不同的控件 mpg123具有该标志,因此您可以向其发送字符。“s”键=开始/停止,“f”键=下一曲目。。。等等 我想我可以用fifo发送mpg123这些键,将mpg123标准输入更改为fifo标准输出,但我不知道在这种情况下如何使用fifo(如何使mpg123“侦听”另一标准输入)。 我所做的是: mkfifo myfifo myfifo | mpg123 -C -@ musiclist.txt And t

我在linux服务器中使用mpg123,我试图通过网页(apache)控制它,使用链接发送不同的控件

mpg123具有该标志,因此您可以向其发送字符。“s”键=开始/停止,“f”键=下一曲目。。。等等

我想我可以用fifo发送mpg123这些键,将mpg123标准输入更改为fifo标准输出,但我不知道在这种情况下如何使用fifo(如何使mpg123“侦听”另一标准输入)。 我所做的是:

mkfifo myfifo
myfifo | mpg123 -C -@ musiclist.txt
And then I've created keys.txt adding some keys to the file:
echo "f" >> keys.txt
echo "s" >> keys.txt
然后:

这是行不通的。 有人能解释一下我如何使用FIFO将消息传递给正在运行的mpg123吗? 我在谷歌上搜索过,但找不到我想要的

这似乎给了我一些启发,但我仍然不知道如何让mpg123听fifo的输出


提前感谢您,

您使用什么来传输myfifo

我假设
cat myfifo|mpg123-C-@musiclist.txt

通过myfifo传输第一个文件后,cat将关闭。尝试使用
tail-f myfifo |…
在EOF后保持打开状态

mkfifo myfifo
tail -f myfifo | mpg123 .. &
# send commands
echo .. > myfifo
sleep 5
echo .. > myfifo

tail
是可选的,除非
mpg123
在stdin上接收到EOF时退出。否则,您可以使用:
mpg123有自己的--fifo选项

如果您想为命令行程序提供一个web界面,那么您不需要mkfifo,如果它可以像您的情况那样接受来自stdin的输入。下面是一个如何连接的示例
mkfifo myfifo
tail -f myfifo | mpg123 .. &
# send commands
echo .. > myfifo
sleep 5
echo .. > myfifo