我在nodejs中通过exec创建child_process时遇到错误。它在0.12.x节点版本下工作正常,唯一的变化是nodejs升级到6.11.3。这个错误10次中有2次无法找到原因和解决方案。提前感谢
代码详细信息:
var exec = require('child_process').exec;
cmd = 'sh /home/ec2-user/bin/lldn start';
exec(cmd,{ shell: '/bin/bash'},
function (error, stdout, stderr) {
if (error) {
deferred.reject({
stdout: stdout,
stderr: stderr,
error: error,
cmd: cmd
});
} else {
deferred.resolve({
stdout: stdout,
stderr: stderr,
error: error,
cmd: cmd
});
}
});错误详细信息:
msg="{ Error: Command failed: sh /home/ec2-
user/logu/datanode/bin/lldn start
at ChildProcess.exithandler (child_process.js:198:12)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:920:16)
at Process.ChildProcess._handle.onexit
(internal/child_process.js:230:5)
killed: false,
code: null,
signal: 'SIGHUP',
cmd: 'sh /home/ec2-user/logu/datanode/bin/lldn start' }"发布于 2018-01-10 23:01:33
我用另一个命令也遇到了同样的问题,在深入研究之后,我意识到exec隐藏了正确的错误。
我能够在以下位置显示添加记录器时出现的真正错误:
function (error, stdout, stderr) {
// Not all three vars are needed, but better to show more
console.log(error, stdout, stderr);
if (error) {
deferred.reject({我知道这不是你的具体问题的解决方案,但我希望这能有所帮助。
https://stackoverflow.com/questions/47344335
复制相似问题