名前付きパイプからの最初のメッセージを標準入力が待機しないようにする

名前付きパイプからの最初のメッセージを標準入力が待機しないようにする

名前付きパイプを介してバックグラウンド プロセスと通信する必要があります。このバックグラウンド プロセスは node.js プロセスです。

そこで私はシェルスクリプトでこれを実行します:

mkfifo MYPIPE
node script.js < MYPIPE

何が起こるかというと、node.js スクリプトは起動せず、最初の stdin メッセージが書き込まれるのを待っているようですMYPIPE

私がやりたいのは、MYPIPE からノード プロセスの stdin にデータを送信することですが、MYPIPE からの最初のメッセージを待つのではなく、node.js プロセスを開始したいと思います。どうすればいいでしょうか?

答え1

これは、代わりに次のようにするだけの単純なケースです。

cat MYPIPE | node script.js

なぜそれが違う動作をするのか理解できない

node script.js < MYPIPE

関連情報