让我们以显示系统信息并定期更新它的“顶级”应用程序为例。
我想使用 node.js 运行它并显示该信息(和更新!)。我想出的代码:
#!/usr/bin/env node
var spawn = require('child_process').spawn;
var top = spawn('top', []);
top.stdout.on('readable', function () {
console.log("readable");
console.log('stdout: '+top.stdout.read());
});
它的行为不像我预期的那样。事实上它什么也没产生:
readable
stdout: null
readable
stdout:
readable
stdout: null
然后退出(这也是意料之外的)。
仅以top应用为例。目标是通过节点代理这些更新并将它们显示在屏幕上(与直接从命令行运行 top 的方式相同)。
我最初的目标是编写脚本以使用 scp 发送文件。这样做然后注意到我缺少 scp 本身显示的进度信息。环顾四周 scp 节点模块,他们也没有代理它。所以回溯到像top这样的常见应用程序。