捕获stream程的连续输出
我有一个期望的脚本,无密码的ssh到另一个盒子,并启动一个命令转储文件内容使用命令: tail -f …
由于我正在使用-f tail选项,因此这些命令会一直等待,直到将新数据添加到文件中并立即转储为止。
我正在使用exec从我的NodeJS脚本启动脚本:
var child = exec('script.sh process1 process2', function(err, stdout, stderr) { if(err) { console.log("Error"); return; } var result; while((result = stdout.toString.split("\r\n")) != null) { logger.info(result); } } });
但是我在控制台日志中出现错误:
Error in expect script ::Error: maxBuffer exceeded.
由于输出是标准输出stream中的连续数据,我如何利用所需的目标。 我尝试使用产卵,但我得到下面的错误:
NodeJS:警告:检测到可能的EventEmitter内存泄漏。 添加了11位听众。 使用emitter.setMaxListeners()来增加限制
我怎样才能克服这个问题?
编辑::
看起来像callback或事件将被调用时,有关的命令已经完成运行或返回一个错误。 有没有办法可以得到输出,即使我的命令仍然在后台执行?
看起来像spawn是处理stream的意思,而exec具有200k的最大缓冲区。
您的产卵输出只是一个警告: 检测到可能的EventEmitter内存泄漏
- 使用NTVSdebuggingMeteor应用程序(适用于Visual Studio的节点工具)
- Mongoose从数组元素中select特定的字段
- primefaces壳(电子)可以使用系统级API吗?
- 使用google-api-javascript-client和node.js
- 如何使用ReactJS / NodeJS一起部署到Amazon Web Services(AWS)上?
- redis pub / sub模型用于select性推送的通知系统
- 快速file upload。 处理可怕的parsing错误(服务器端)
- 节点应用程序:Http到httpsredirect不适用于本地主机
- nodemon不起作用:-bash:nodemon:找不到命令