簡體   English   中英

如何在Node.js中獲得服務器正常運行時間?

[英]How do I get the server uptime in Node.js?

如何在Node.js中獲得服務器正常運行時間,以便我可以通過命令輸出它;

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

現在我不知道如何計算服務器啟動時的正常運行時間。

您可以使用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));

在幾秒鍾內獲得進程的正常運行時間

    console.log(process.uptime())

在幾秒鍾內獲得OS正常運行時間

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

你可以做些什么來獲得正常的時間格式;

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);
}

假設這是一個* nix服務器,您可以使用child_process使用uptime shell命令:

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

如果你想以不同的方式格式化該值或將其傳遞到其他地方,那么這樣做應該是微不足道的。

編輯:正常運行時間的定義似乎有點不清楚。 此解決方案將告訴用戶設備已啟動多長時間,這可能是也可能不是您所追求的。

我不確定你是在談論HTTP服務器,實際的機器(或VPS)還是一般的Node應用程序。 以下是Node中http服務器的示例。

通過在listen回調中獲取Date.now()存儲服務器啟動的時間。 然后,您可以通過在另一個時間點從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();
});

以ms為單位同步獲取unix正常運行時間:

const fs= require("fs");

function getSysUptime(){

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

}

console.log(getSysUptime());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM