node.js에서 UNIX 명령어 실행하기
node.js는 JavaScript를 사용하기는 하지만 UNIX 명령어를 코드내에서 실행할 수 있는 메카니즘도 제공하고 있습니다. UNIX 명령어를 그대로 사용해서 결과를 리턴받을 수 있기 때문에 시스템 자원을 체크한다던지 파일리스트를 가져온다든지 하는 등에 사용할 수 있습니다.
1var exec = require('child_process').exec,
2 child;
3
4child = exec("pwd", function (error, stdout, stderr) {
5 console.log('stdout: ' + stdout);
6 console.log('stderr: ' + stderr);
7 if (error !== null) {
8 console.log('exec error: ' + error);
9 }
10});
UNIX명령어를 사용하려면 Child Process의 exec메서드 를 사용해서 사용하려는 명령어를 넘겨주고 콜백으로 받으면 됩니다. 위의 코드는 PWD 명령어를 실행한 것이고 콜백 파라미터로는 (error, stdout, stderr)가 넘어오면 에러가 없을 경우 error는 null이 오게 됩니다.
두번째 파라미터로 옵션을 넘겨줄 수 있는데 기본 옵션은 아래와 같습니다.
1{
2 encoding: 'utf8'
3, timeout: 0
4, maxBuffer: 200*1024
5, killSignal: 'SIGTERM'
6, cwd: null
7, env: null
8}
timeout이 0보다 크면 콜백호출이 timeout보다 오래 걸리면 child process를 killSignal과 함께 죽이게 됩니다. maxBuffer는 stdout나 stderr로 받은 양의 사이즈이며 이값보다 많은 양이 돌아오게 되면 역시 child process가 죽어버리게 됩니다.
Comments