1
我有一个期望脚本,做密码的ssh到另一个对话框并开始命令中使用命令转储文件内容:尾-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.
由于输出是stdout中的连续数据流如何利用期望的目标。我试着用产卵,但我得到以下错误:
我怎样才能解决这个问题?
编辑::
好像回调或者当关注的命令已经完成运行或返回错误的事件将被调用。有没有办法可以得到输出,即使我的命令仍然在后台执行?
我尝试添加process.setMaxListeners(0),但仍得到相同的结果。我的NodeJS版本是v0.8.15。即使它是一个警告 - 但我没有在标准输出中获取数据 - 函数child.stdout.on('data',function(data){})中的记录器; - 不会打印在控制台中。 – Prakash