【问题标题】:Execute shell command and get log nodejs执行shell命令并获取日志nodejs
【发布时间】:2014-08-09 23:01:18
【问题描述】:

我正在使用这个原生 nodejs 方法来运行一个可执行文件:

child = exec('node app.js',
function (error, stdout, stderr) {}
});

当进程终止时调用回调。但我需要生命周期内进程在控制台中记录的内容。这可能吗?谢谢!

【问题讨论】:

  • 您尝试阅读stdoutstderr 吗?
  • 是的,但是当进程终止时会调用此回调!我需要应用程序启动时记录的内容,或者以某种方式传递这些数据
  • 哦。请改用child_process.spawn,并处理exit 事件。

标签: javascript node.js process dns fork


【解决方案1】:

请改用spawn。示例:

var cproc = require("child_process");

proc = cproc.spawn("ping", ["www.google.com"]);

proc.stdout.on("data", function(res) { 
        console.log("Data received: " + res);
});

【讨论】:

  • 谢谢。这些数据是如何传递的?是流吗?我怎样才能将数据作为对象? @塞勒姆
  • 是的,我想是的。 “以数据为对象”是什么意思? data 只是一串文本...