无法从子进程获取输出
Unable to get output from child process
所以,我有一个简单的应用程序(我已经写过)写入 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 的缓冲比输出到管道的缓冲少。
所以,我有一个简单的应用程序(我已经写过)写入 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 的缓冲比输出到管道的缓冲少。