【问题标题】:Using fifos and links to control remote process from a webpage (Linux)使用 fifos 和链接从网页控制远程进程 (Linux)
【发布时间】:2013-12-19 23:18:42
【问题描述】:

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

mpg123 具有-C 标志,因此您可以向其发送字符。 "s" 键 = 开始/停止,"f" 键 = 下一首……等等。

我想我可以用 fifo 发送 mpg123 那些键,将 mpg123 标准输入更改为先进先出标准输出,但我不知道在这种情况下如何使用先进先出(如何让 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

然后:

cat keys.txt >> myfifo.fifo

这不起作用。 有人可以解释一下我可以使用 fifos 将消息传递到正在运行的 mpg123 吗? 我用谷歌搜索了它,但找不到我想要的。

这个question好像给了我一些启示,但是我还是不知道怎么让mpg123听fifo的输出。

提前谢谢你,

【问题讨论】:

  • 如果您想为命令行程序提供 Web 界面,那么如果 mkfifo 可以像您的情况一样接受来自标准输入的输入,则不需要 mkfifo。
  • 这是一个连接a command-line program and web browser的示例

标签: linux process pipe webpage mkfifo


【解决方案1】:

你用什么来管道 myfifo?

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

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

【讨论】:

    【解决方案2】:
    mkfifo myfifo
    tail -f myfifo | mpg123 .. &
    # send commands
    echo .. > myfifo
    sleep 5
    echo .. > myfifo
    

    tail 是可选的,除非mpg123 在标准输入上收到 EOF 时退出。否则你可以使用:<myfifo mpg123 ..

    如果您在另一个终端中运行echo 命令,末尾的&(控制操作员在后台执行命令)是可选的。

    【讨论】:

      【解决方案3】:

      mpg123 有它自己的 --fifo 选项

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-13
        • 2011-12-12
        • 1970-01-01
        相关资源
        最近更新 更多