2
가끔 프로세스가 실행되는 데 시간이 오래 걸립니다. 제 질문은이 프로세스 시간을 제한하는 방법이 있습니까? 예를 들어 3 분 후에이 과정을 중단 할 수 있습니까?노드 생성 프로세스가 타임 아웃을 확인합니다
가끔 프로세스가 실행되는 데 시간이 오래 걸립니다. 제 질문은이 프로세스 시간을 제한하는 방법이 있습니까? 예를 들어 3 분 후에이 과정을 중단 할 수 있습니까?노드 생성 프로세스가 타임 아웃을 확인합니다
제한 시간 내에 process.kill
을 사용할 수 있습니다. 그러나 아이가 해고되기 전에 끝내면 타임 아웃을 취소하는 것을 잊지 마십시오.
이 예를 살펴 보자
var seconds = process.argv[2] || 2;
var spawn = require('child_process').spawn;
var child = spawn('bash', ['child.sh'], {detached: true});
var stopped;
var timeout = setTimeout(() => {
console.log('Timeout');
try {
process.kill(-child.pid, 'SIGKILL');
} catch (e) {
console.log('Cannot kill process');
}
}, seconds*1000);
child.on('error', err => console.log('Error:', err));
child.on('exit',() => { console.log('Stopped'); clearTimeout(timeout); });
child.stdout.on('data', data => console.log(data.toString()));
기본적으로 :
#!/bin/bash
sleep 3
echo DATA FROM CHILD
이 그 아이를 생성합니다 노드 프로그램이 3 초 후에 반환 child.sh
입니다
을 자식이 필요로하는 것보다 짧고 자식이 죽을 2 초를 기다리지 만 명령 줄 인수로 다른 초 수를 추가 할 수 있습니다.
node nodeprogram.js 10
어린이가 끝내기에 충분합니다.
가능한 복제 http://stackoverflow.com/questions/18694684/spawn-and-kill-a-process-in-node-js – abdulbarik