노드의 child_process.execFile()
을 사용하여 모든 출력을 표준 출력 및 오류 스트림에 넣는 프로세스를 시작하고 통신합니다. 이 과정은 시간의 불확정 시간 동안 실행하고 이론적으로 출력의 양, 즉 생성 할 수 있습니다 : 나는 모든 데이터의 집계보기를 필요로하지 않기 때문에 내가 execFile()
에 마지막 인수를 사용하지 않는버퍼링하지 않고 child_process.execFile()
const process = execFile('path/to/executable', [], {encoding: buffer'});
process.stdout.on('data', (chunk) => {
doSomethingWith(chunk);
});
process.stderr.on('data', (chunk) => {
renderLogMessage(chunk);
});
공지 사항을 그 그 시냇물에서 나왔다. 이 누락에도 불구하고 Node는 어쨌든 출력을 버퍼링하는 것처럼 보입니다. 그리고 많은 양의 출력을 생성하기에 충분한 입력을 제공함으로써이 프로세스를 안정적으로 SIGTERM
신호로 끝낼 수 있습니다. 프로세스가 상태를 유지하고 단순히 주기적으로 다시 시작할 수 없으므로 문제가됩니다.
이 동작을 어떻게 변경하거나 해결할 수 있습니까?