讓我們來看看顯示系統信息並定期更新它的「頂級」應用程序。使用node.js讀取應用程序標準輸出數據
我想使用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
然後退出(這也是意外)。
僅以頂部應用爲例。目標是通過節點代理這些更新並將它們顯示在屏幕上(與從命令行直接運行頂層的方式相同)。
我最初的目標是編寫使用scp發送文件的腳本。做到這一點,然後注意到我缺少scp自身顯示的進度信息。看了看scp節點模塊,他們也沒有代理它。所以回溯到頂級的常見應用程序。
頂部只是一個例子。還有其他應用程序顯示執行進度等。我想通過節點將數據代理到屏幕或文件(如果可能的話)。 –
已更新,說明頂部正在退出,因爲stdin不是tty。 –
彼得,以及頂級或類似的應用程序如何顯示他們的數據,他們確實不推動它作爲標準輸出? –