如何在Mac Os中实时获取顶级命令输出

我想监视服务器并在网页上实时显示顶部的命令输出。 有一个错误error: initializing cursesMac OS上启动程序后error: 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); }); 

如果在命令窗口中运行top ,它将使用curses库更新屏幕上的数据。 尝试在顶部使用批处理模式“-b”选项来查看是否允许节点将其输出传输到您的

看起来像OSX的top命令必须使用-l标志(其他UNIX使用-b )。 有了这个标志,“curses”库就不再需要了(这个lib为默认的交互模式做了很好的格式化),所以pipe道开始工作。

以下是开始的代码:

 var top = spawn("top", ["-l 0"]); top.stdout.pipe(process.stdout); top.stderr.on("data", function(data) { console.log("ps stderr: " + data); });