如何在Node.js中获得服务器正常运行时间?

时间:2015-02-24 19:52:42

标签: javascript node.js

如何在Node.js中获得服务器正常运行时间,以便我可以通过类似命令输出它;

if(commandCheck("/uptime")){
  Give server uptime;
}

现在我不知道如何计算服务器启动时的正常运行时间。

6 个答案:

答案 0 :(得分:12)

您可以使用process.uptime()。只需调用它即可获得自node启动以来的秒数。

function format(seconds){
  function pad(s){
    return (s < 10 ? '0' : '') + s;
  }
  var hours = Math.floor(seconds / (60*60));
  var minutes = Math.floor(seconds % (60*60) / 60);
  var seconds = Math.floor(seconds % 60);

  return pad(hours) + ':' + pad(minutes) + ':' + pad(seconds);
}

var uptime = process.uptime();
console.log(format(uptime));

答案 1 :(得分:7)

以秒为单位获取流程的正常运行时间

    console.log(process.uptime())

在几秒钟内获得操作系统正常运行时间

    console.log(require('os').uptime())

答案 2 :(得分:5)

你可以做些什么来获得正常的时间格式;

String.prototype.toHHMMSS = function () {
    var sec_num = parseInt(this, 10); // don't forget the second param
    var hours   = Math.floor(sec_num / 3600);
    var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
    var seconds = sec_num - (hours * 3600) - (minutes * 60);

    if (hours   < 10) {hours   = "0"+hours;}
    if (minutes < 10) {minutes = "0"+minutes;}
    if (seconds < 10) {seconds = "0"+seconds;}
    var time    = hours+':'+minutes+':'+seconds;
    return time;
}

if(commandCheck("/uptime")){
    var time = process.uptime();
    var uptime = (time + "").toHHMMSS();
    console.log(uptime);
}

答案 3 :(得分:3)

假设这是一个* nix服务器,您可以使用uptime使用child_process shell命令:

var child = require('child_process');
child.exec('uptime', function (error, stdout, stderr) {
    console.log(stdout);
});

如果您想以不同的方式格式化该值或将其传递到其他地方,那么这样做应该是微不足道的。

编辑:正常运行时间的定义似乎有点不清楚。该解决方案将告诉用户设备已启动多长时间,这可能是您所追求的,也可能不是。

答案 4 :(得分:1)

我不确定您是在谈论HTTP服务器,实际机器(或VPS)还是仅仅是一个Node应用程序。以下是Node中http服务器的示例。

通过在Date.now()回调中获取listen来存储服务器启动的时间。然后,您可以通过在另一个时间点从Date.now()减去此值来计算正常运行时间。

var http = require('http');

var startTime;

var server = http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Uptime: ' + (Date.now() - startTime) + 'ms');
});

server.listen(3000, function () {
    startTime = Date.now();
});

答案 5 :(得分:0)

以ms为单位同步获取unix正常运行时间:

const fs= require("fs");

function getSysUptime(){

     return parseFloat(fs.readFileSync("/proc/uptime", { 
       "encoding": "utf8" 
     }).split(" ")[0])*1000;

}

console.log(getSysUptime());