【发布时间】:2015-09-02 16:51:53
【问题描述】:
我正在尝试在 for 循环中执行与 nodejs 中的子进程相同的 java jar 文件,但是如何监听多个子输出???
test.jar 文件在无限循环中运行,它所做的只是增加并打印数字。
下面是我的代码,它确实在nodejs中产生了多个子进程,但它只打印最后一个子进程的pid,其他子进程的内容都添加到最后一个子进程中。
var exec = require('child_process').exec, child;
var state = "java -jar " + "c://test.jar "
var exec = require('child_process').exec;
for (var i = 0; i < 10; i++) {
var child = exec(state);
// Add the child process to the list for tracking
p_list.push({process:child, content:""});
// Listen for any response:
child.stdout.on('data', function (data) {
console.log(child.pid, data);
p_list[i].content += data;
});
// Listen for any errors:
child.stderr.on('data', function (data) {
console.log(child.pid, data);
p_list[i].content += data;
});
// Listen if the process closed
child.on('close', function(exit_code) {
console.log('Closed before stop: Closing code: ', exit_code);
});
}
【问题讨论】:
标签: node.js