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

관련 정보