Impedir que stdin espere pela primeira mensagem do pipe nomeado

Impedir que stdin espere pela primeira mensagem do pipe nomeado

Preciso me comunicar com um processo em segundo plano por meio de um canal nomeado. Este processo em segundo plano é um processo node.js.

Então eu faço isso em um script de shell:

mkfifo MYPIPE
node script.js < MYPIPE

o que acontece é que o script node.js não inicia - parece estar aguardando a gravação da primeira mensagem stdin MYPIPE.

O que eu quero fazer é enviar os dados do MYPIPE para o stdin do processo do nó, mas quero iniciar o processo node.js em vez de esperar pela primeira mensagem do MYPIPE. Como faço isso?

Responder1

este foi apenas um caso simples de fazer isso:

cat MYPIPE | node script.js

Acho que simplesmente não entendo por que isso se comporta de maneira diferente do que

node script.js < MYPIPE

informação relacionada