javascript - 无法从子进程获取输出

标签 javascript node.js macos process spawn

所以,我有一个简单的应用程序(我已经编写)写入stdout

当我单独运行它时,输出打印正常。

现在,当我用 node 生成进程时...什么也没有发生(除了一条消息说进程已经完成)

这是我的代码:

var spawn = require('child_process').spawn;
helper = spawn("myApp", []);
helper.stdout.on('data', function(data) { 
    console.log("GOT: " + data);
});
helper.stdout.on('end', function(data) {
    console.log("FINISHED: " + data);
});
helper.on('exit', function(code) {
    console.log("CLOSED!");
});

这是输出:

FINISHED: undefined
CLOSED!

是的,就是这样。

这是怎么回事?我错过了什么吗?

最佳答案

确保您的 stdio 输出缓冲区在您的应用程序中被刷新:

  fflush(stdout); // or something like that

直接输出到 tty 的缓冲比输出到管道的缓冲少。

关于javascript - 无法从子进程获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545001/

相关文章:

javascript - 如何通过Sequelize连接多个数据库?

javascript 函数声明和作用域差异

macos - 有没有办法在 hidpi 模式下运行 genymotion?

macos - 在 OS X 的 Sublime Text 2 中,如何将键盘快捷键 ctrl-shift-k(删除行)重新映射到 ctrl-k

javascript - 如何在可观察数组中 knockout 可观察对象

javascript - jQuery 只应用于一个元素

javascript - JS : How long does it take to call a function?

javascript - 滚动时创建一个不断变化的 css 导航栏?

javascript - Express.io "Cannot read property of ' 未定义的过期”

objective-c - 在并发队列中使用dispatch_semaphore_t发生死锁