다음 코드를 사용하여 사용자에게 입력을 요청한 다음 완료해야하는 자식 프로세스를 생성하지만 close
이벤트는 절대로 실행되지 않습니다. 나는 사용자 입력하라는 메시지를 표시하지 않는 프로세스를 생성하는 경우NodeJS 자식 프로세스가 STDIN에 쓸 때 닫기 이벤트를 발생시키지 않습니다.
const spawn = require('child_process').spawn;
const p = spawn('script', ['that', 'prompts', 'user', 'for', 'input']);
process.stdin.on('data', (data) => {
p.stdin.write(data);
});
p.on('close', (code) => {
console.log(`child process closed with code ${code}`);
});
은 (어떤 문제없이 ls´), the
close` 이벤트가 발생있다. 나는 부모에서 자식 프로세스의 STDIN에 직접 쓰기에 대해 뭔가 의심이 종료에서 그것을 방해 올바르게 입력했는데 이유가 무엇인지 알 수 없습니다. 여기에 명백한 내용이 누락 되었습니까?
이 코드는있는 그대로 작동합니다. 'bc'라고 입력하고 'quit'을 입력하십시오. 문제는 당신이 나가야한다고 생각하는 조건 하에서 실제로 나오지 않는 것으로 산다. – pvg