1

Linux アプリケーションを起動する必要がある JavaScript アプリケーションがあります。

アプリケーションを起動していつ終了するかを取得する方法が見つからなかったため、アプリケーションを起動し、アプリケーションが閉じたときに名前付きパイプを介してメッセージを送信する 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 を送信するか ("Already Running")、プレーヤーを開始して VE を送信します ("Video End")。

4

1 に答える 1

2

child_process モジュールと 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);

この場合、現在のプロセスに

spawn の代わりに "exec" を使用することもできます。コールバック関数で出力が得られます。

于 2013-07-24T08:35:53.900 に答える