Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

node.js에서 UNIX 명령어 실행하기

node.js는 JavaScript를 사용하기는 하지만 UNIX 명령어를 코드내에서 실행할 수 있는 메카니즘도 제공하고 있습니다. UNIX 명령어를 그대로 사용해서 결과를 리턴받을 수 있기 때문에 시스템 자원을 체크한다던지 파일리스트를 가져온다든지 하는 등에 사용할 수 있습니다.


var exec = require('child_process').exec,
    child;

child = exec("pwd", function (error, stdout, stderr) {
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
    if (error !== null) {
        console.log('exec error: ' + error);
    }
});
UNIX명령어를 사용하려면 Child Process의 exec메서드를 사용해서 사용하려는 명령어를 넘겨주고 콜백으로 받으면 됩니다. 위의 코드는 PWD 명령어를 실행한 것이고 콜백 파라미터로는 (error, stdout, stderr)가 넘어오면 에러가 없을 경우 error는 null이 오게 됩니다.


두번째 파라미터로 옵션을 넘겨줄 수 있는데 기본 옵션은 아래와 같습니다.


{
    encoding: 'utf8'
,   timeout: 0
,   maxBuffer: 200*1024
,   killSignal: 'SIGTERM'
,   cwd: null
,   env: null
}
timeout이 0보다 크면 콜백호출이 timeout보다 오래 걸리면 child process를 killSignal과 함께 죽이게 됩니다. maxBuffer는 stdout나 stderr로 받은 양의 사이즈이며 이값보다 많은 양이 돌아오게 되면 역시 child process가 죽어버리게 됩니다.
2010/11/15 00:30 2010/11/15 00:30