如何在Mac Os中实时获取顶级命令输出
我想监视服务器并在网页上实时显示顶部的命令输出。 有一个错误error: initializing curses
在Mac 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); });