将代码从 child process exec 更改为 spawn
Change the code from child process exec to spawn
我有节点应用程序,我使用 child_process.exec api 工作正常,问题是我们有 maxBuffer 东西遇到问题因此我想将其更改为与 spawn
一起使用
代码 before 就像(这段代码工作正常,我只需要传递 cmd 和选项,它就完成了工作...)
var child = child_process.exec(cmd,options, function (error) {
....
});
现在我将其更改为 spawn 但它不起作用
var child = child_process.spawn(cmd, options);
child.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
这里出现错误
Error: spawn ENOENT
at errnoException (child_process.js:988:11)
at Process.ChildProcess._handle.onexit (child_process.js:779:34)
stderr: execvp(): No such file or directory
知道我在这里遗漏了什么吗?
使用 spawn 启动子进程时,需要将命令与参数分开。
如果你有:
child_process.exec('somecmd somearg somearg2', options, function() {...});
您现在需要:
child_process.spawn('somecmd', ['somearg', 'somearg2'], options);
如果没有要使用的参数,则传递一个空数组:
child_process.spawn('somecmd', [], options);
我有节点应用程序,我使用 child_process.exec api 工作正常,问题是我们有 maxBuffer 东西遇到问题因此我想将其更改为与 spawn
一起使用代码 before 就像(这段代码工作正常,我只需要传递 cmd 和选项,它就完成了工作...)
var child = child_process.exec(cmd,options, function (error) {
....
});
现在我将其更改为 spawn 但它不起作用
var child = child_process.spawn(cmd, options);
child.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
child.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
这里出现错误
Error: spawn ENOENT
at errnoException (child_process.js:988:11)
at Process.ChildProcess._handle.onexit (child_process.js:779:34)
stderr: execvp(): No such file or directory
知道我在这里遗漏了什么吗?
使用 spawn 启动子进程时,需要将命令与参数分开。
如果你有:
child_process.exec('somecmd somearg somearg2', options, function() {...});
您现在需要:
child_process.spawn('somecmd', ['somearg', 'somearg2'], options);
如果没有要使用的参数,则传递一个空数组:
child_process.spawn('somecmd', [], options);