stdinが名前付きパイプの最初のメッセージを待つのを防ぐ

stdinが名前付きパイプの最初のメッセージを待つのを防ぐ

名前付きパイプを介してバックグラウンドプロセスと通信する必要があります。このバックグラウンドプロセスは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

関連情報