Node.js ChildProess‘는 자식프로세스 기능을 사용할 수 있게 합니다. 이 모듈을 사용하기 위해서는 다음 메서드로 자식 프로세스를 생성해야 합니다:

require(‘child_process’).spawn(command, args=[], [options])

  • options: 기본값은 { cwd:undefined, env:process.env, setsid: false } 입니다. ‘cwd’는 생성된 프로세스가 실행되는 디렉토리를 지정하는 것이고, ‘env’는 새 프로세스가 접근할 수 있는 환경 변수를 지정, ‘setsid’가 true이면 서브프로세스를 새 세션으로 생성하게 됩니다.

Node.js ChildProess 스트림 종류

자식 프로세스는 child.stdin, child.stdout, child.stderr 의 3가지 종류의 스트림을 사용합니다.

다음은 디렉토리의 파일목록을 출력하는 예제입니다. ChildProcess도 EventEmitter의 객체여서 각 스트림에 이벤트 리스너를 등록할 수 있습니다:

결과:

child_process.exec(command, [options], callback)

‘command’를 실행하고 결과를 돌려주는 함수입니다. 콜백함수는 function(error, stdout, stderr) { } 입니다. ‘options’ 들어가는 파라미터 기본값은 다음과 같습니다:

timeout‘ 후에 프로세스를 종료하며 종료할 때 ‘killSignal‘을 씁니다.

예제:

결과: