bash和javascript之间的消息通过命名pipe道
我有一个JavaScript应用程序需要启动一个Linux应用程序。 由于我没有find任何方式来启动应用程序,当它结束时,我做了一个bash脚本启动应用程序,并在应用程序closures时通过命名pipe道发送消息。
直到这里,一切都很好,但是我找不到在javascript中捕获这个消息的方法。
有人知道如何获得在JavaScript的消息?
我search了,但我只发现如何在C#和C ++中做到这一点。
来自javascript的示例:
var test = spawn('sh', ['home/pi/play.sh', data.video_id]);
只是产生一个bash命令,以video的名称启动脚本
来自bash的示例:
mkfifo btjpipe if pgrep omxplayer then echo "AR">btjpipe else clear omxplayer $1 > dev/null echo "VE">btjpipe
创buildpipe道,寻找玩家是否已经在运行,然后发送AR(“已经运行”)或启动播放器并发送VE(“Video End”)。
使用child_process模块和child.stdout来pipe输出你想要的
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,你会在callback函数中得到输出。