4

サーバーを監視し、トップ コマンドの出力を Web ページにリアルタイムで表示したい。Mac OSerror: initializing cursesでプログラムを起動した後にエラーが発生しました。対処方法がわかりません。私の質問は、Node.JS を介してリアルタイムで最上位のコマンド出力を取得する方法です。

var spawn = require('child_process').spawn,
    com = spawn('/usr/bin/top', []); 
var io = require('socket.io').listen(5555);
  com.stdout.on('data', function(data){
    io.sockets.emit('get result', data);
  }
  );
com.stderr.on('data', function(data){
console.log('stderr: ' + data);
});
4

2 に答える 2

4

コマンド ウィンドウで実行するtopと、curses ライブラリを使用して画面上のデータが更新されます。一番上にバッチモードの「-b」オプションを使用して、ノードが出力をパイプラインにパイプできるかどうかを確認してください

于 2013-03-25T09:23:41.420 に答える
1

OSX のtopコマンドは、-lフラグを付けて呼び出す必要があるようです (他の UNIX では を使用します-b)。そのフラグを使用すると、「curses」ライブラリは不要になり (このライブラリはデフォルトの対話モード用に派手な書式設定を行います)、パイピングが機能し始めます。

開始するコードは次のとおりです。

var top = spawn("top", ["-l 0"]);
top.stdout.pipe(process.stdout);
top.stderr.on("data", function(data) {
  console.log("ps stderr: " + data);
});
于 2014-11-25T12:05:35.400 に答える