通过命名管道在bash和javascript之间传递消息

通过命名管道在bash和javascript之间传递消息,javascript,node.js,bash,named-pipes,raspbian,Javascript,Node.js,Bash,Named Pipes,Raspbian,我有一个javascript应用程序,需要启动linux应用程序。 由于我没有找到启动应用程序并在其结束时获取的任何方法,因此我制作了一个bash脚本来启动应用程序,并在应用程序关闭时通过命名管道发送消息 在这里之前,一切都很好,但我找不到一种方法在javascript中捕获此消息 有人知道如何在javascript中获取消息吗 我搜索过,但是我只在C和C++中找到了这个方法。 来自javascript的示例: var test = spawn('sh', ['home/pi/play.sh',

我有一个javascript应用程序,需要启动linux应用程序。 由于我没有找到启动应用程序并在其结束时获取的任何方法,因此我制作了一个bash脚本来启动应用程序,并在应用程序关闭时通过命名管道发送消息

在这里之前,一切都很好,但我找不到一种方法在javascript中捕获此消息

有人知道如何在javascript中获取消息吗

<>我搜索过,但是我只在C和C++中找到了这个方法。 来自javascript的示例:

var test = spawn('sh', ['home/pi/play.sh', data.video_id]);
只需生成一个bash命令,用视频名称启动脚本

来自bash的示例:

mkfifo btjpipe
if pgrep omxplayer
then
    echo "AR">btjpipe
else
    clear
    omxplayer $1 > dev/null
    echo "VE">btjpipe

创建管道,查找播放机是否已在运行,然后发送AR(“已在运行”)或启动播放机并发送VE(“视频结束”)。

使用child\u进程模块和child.stdout将输出管道传输到所需的位置

var spawn = require('child_process').spawn;
var test = spawn('sh', ['home/pi/play.sh', data.video_id]);


test.stdin.pipe(process.stdin);
test.stdout.pipe(process.stdout);
test.stderr.pipe(process.stderr);
在本案例中,请将其提交至当前流程


也许您也可以尝试使用“exec”而不是spawn,您将在回调函数中获得输出。

您使用的是什么JavaScript引擎和环境?NodeJS?SilkJS?我使用raspbian(debian代表raspberry pi)在raspberry pi上运行,使用chromium和node。jsI添加了
nodejs
标记(对于您的问题来说,这是一个非常重要的标记)。不知道你所说的“chromium”是什么意思——如果你使用的是Raspbian,你就没有使用Chrome操作系统,我能想到的唯一其他相关chromium是一个web浏览器,但你没有在web浏览器中这样做。我已经看到,我编辑的时候晚了一点,忘了添加test.stdin.pipe(process.stdin);,如果数据在管道中的什么位置,它们现在将处于测试中?