Child process | Node.js v19.1.0 Documentation
자식 프로세스를 생성하는 node.js 내장 모듈
child_process를 이용하는 방법은 크게 두가지가 있다.
spawn VS exec
“exec자체는 비동기지만 자식 프로세스가 종료될 때까지 기다렸다가 버퍼링된 모든 데이터를 한번에 반환하려 함”은 무슨말일까?
import sys
import time
def run(code):
print(code)
for i in range(10):
time.sleep(1)
print(i + 1)
if __name__ == '__main__':
if (len(sys.argv) > 1):
run(sys.argv[1])
import sys
import time
def run(code):
print(code * 1000)
for i in range(10):
time.sleep(1)
print(i + 1)
print(str(i + 1) * 10000)
if __name__ == '__main__':
if (len(sys.argv) > 1):
run(sys.argv[1]
child_process.spawn(command[, args][, options])
간단한 예제:
spawn
방식을 이용하여 ls -al ~/
을 실행하는 프로세스 만들기
자식프로세스에서 오는 데이터를 받는 방법 3가지로, 위에서 부터 애러메세지, 메세지, 종료메세지에 해당함
const child=require('child_process');
const spawn=child.spawn('ls',['-al','~/']);
spawn.stderr.on('data', function(data){
console.log('stderr: '+data.toString())
});
spawn.stdout.on('data', function(data){
console.log('stdout: '+data.toString());
});
spawn.on('exit',function(code,signal){
console.log('exit: ');
});