4
내 노드 작업에서 ChildProcess.exec를 사용하여 async.forEach 루프 내에서 명령을 실행하려고합니다. 여기에 코드 여기Node.js spawn EMFILE
async.forEach(docPaths, function(docPath, callback) {
var run = [];
// some command using docPath variable here..
run.push(command);
debugger;
exec(run.join(' '), function(error, stdout, stderr){
callback();
});
}, callback);
빠른 구글 내가 열 수있는 파일 디스크립터의 수를 증가 ulimit를 값을 설정해야 표시 오류
"stack":"Error: spawn EMFILE\
at errnoException (child_process.js:478:11)\
at ChildProcess.spawn (child_process.js:445:11)\
at child_process.js:343:9\
at Object.execFile (child_process.js:253:15)\
at child_process.js:220:18\
이다. "ulimit를 -n 10000"와 같은 어떤 것을 .. (아래 링크에서)
https://groups.google.com/forum/#!topic/nodejs/jeec5pAqhps
내가이 증가 할 수 있습니다 ..? 또는이 문제를 우회하는 다른 해결책이 있습니까?감사합니다. 많은 감사드립니다!
필자가 아는 한, 파일 기술자에 대한 ulimit는 고전적인 C++ 응용 프로그램에서 FD 누수를 추적하기 위해 순전히 설정되었습니다. 어쨌든 비동기식 세계에서는별로 의미가 없으므로 노드 앱을 무제한으로 설정하는 것이 안전해야합니다. – alex
@alex, ulimit을 무제한으로 설정하는 것은 ** 안전하지 않습니다. 결과를 보려면 http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm을 참조하십시오 .. – Sriharsha
시도했습니다. eachLimit과 eachSeries는 모두 오류를 전달합니다. 두 사람 중 누구도 나를 위해 잘 돌아갔다. 비록 각 시리즈가 동시에 처리하지는 않지만, 나는 여러 종류의 문제를 해결하고 있습니다. 고마워요 – nodeuser