我正在寻找一种在网页上打印shell命令执行状态的方法。 使用NodeJS和一个名为sudo-js的模块,我执行了一个在shell中打印执行状态的命令,问题是我只在网站执行结束时打印了所有进度,但是我想打印该命令像在Shell终端中一样实时地进入网页。
这是我的代码
if (err) {
console.log(err.stack);
} else {
var command = ['ansible-playbook', '-i', 'hosts.txt', 'sample.yaml'];
sudo.exec(command, function(err, pid, result) {
console.log(result);
res.render('mensajeScriptEjecutadoConResultado', {Resultado: result});
});
}
})
我知道console.log()不能按缓冲区或实时显示数据,并且sudo.exe()可能也不能这样,所以该怎么做?。
谢谢!。
答案 0 :(得分:0)
看看Child Process模块,其中包含一些有用的示例。您的节点程序可以对标准输出,错误和过程完成做出反应。
我用它来向Web客户报告子进程的当前状态...但是我并没有像@Barmar提到的那样使它连续。我的客户必须刷新才能获取状态。