我遇到了“child_process”模块和可执行程序的问题。我想将标准输出从可执行文件传输到我的节点进程。
我可以毫无问题地使用“cat”和“ls”等简单命令,但不能使用我的可执行文件。我正在使用下面的代码。
我的可执行文件在独立运行时将数据记录到终端,所以我不确定为什么这不起作用。节点脚本和可执行文件位于同一目录中并在 MacOS X 上运行。
编辑:可执行文件一旦启动就会永久运行。
var cp = require('child_process');
var cat = cp.spawn('cat', ['udpServer.js']);
cat.stdout.on('data', function(m) {
// This will log just fine!
console.log('cat');
console.log(m);
});
var tracker = cp.spawn('./MyExecutable', []);
tracker.stdout.on('data', function(data){
// This is never logged
console.log('MyExecutable');
console.log(data);
});