프로세스는 당신이 같은 배경 데몬을 자동으로 respawning과 같은 특별한 기능을 필요로하지 않는 한 라이브러리 나 NPM 모듈을 래핑하는 문제 가치가 없어 충분히 간단하다. 내장 된 노드 API 'child_process은'프로세스를 처리하고 사용하는 것은 간단합니다 : 당신이 주문 독립적 인 비동기 제어 흐름이 필요하면
var childProcess = require("child_process");
var child = childProcess.spawn("/usr/bin/uname", ["-a"]);
child.stdout.setEncoding("utf8");
child.stderr.setEncoding("utf8");
var stdoutBuffer = "", stderrBuffer = "";
child.stdout.on("data", function(data){stdoutBuffer += data;});
child.stderr.on("data", function(data){stderrBuffer += data;});
child.on("close", function(code)
{
//the process exited with code `code`
console.log("Stdout:", stdoutBuffer);
process.exit(code); //bubble up the exit code
});
이 (필자는 NPM 모듈 'Q를 추천 약속을 사용하는 것을 고려 'by kriskowal.) 작업이 시작될 때 약속을 작성하고 완료되면 ("close"이벤트 핸들러에서)이를 확인/거부하면 백그라운드 작업이 완료된 후 후속 작업을 수행 할 수있는 깨끗하고 예측 가능한 방법이됩니다.
스폰 할 프로세스가 다른 노드 스크립트 인 경우 spawn() 대신 child_process.fork()를 사용하는 것이 좋습니다. 그것들은 기본적으로 같은 일을하지만 fork()는 자식 프로세스가 부모에게 데이터를 다시 보내는 데 사용할 통신 채널을 자동으로 설정합니다. –