From 9ecf15f5f8128b708acd5d339179c791cad17847 Mon Sep 17 00:00:00 2001 From: Sebastian Hildebrandt Date: Mon, 26 Nov 2018 16:38:40 +0100 Subject: [PATCH] processLoad() bugfix windows --- CHANGELOG.md | 1 + lib/processes.js | 79 +++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fc7221..496eb81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -100,6 +100,7 @@ Other changes | Version | Date | Comment | | -------------- | -------------- | -------- | +| 3.51.1 | 2018-11-26 | `processLoad()` bugfix windows | | 3.51.0 | 2018-11-25 | `processLoad()` added for windows | | 3.50.3 | 2018-11-25 | `processLoad()`, `services()` fixed cpu data (linux) | | 3.50.2 | 2018-11-23 | network mac adresses: ip support fix | diff --git a/lib/processes.js b/lib/processes.js index 145f7fa..28c5a91 100644 --- a/lib/processes.js +++ b/lib/processes.js @@ -849,7 +849,7 @@ function processLoad(proc, callback) { if (!error) { let processSections = stdout.split(/\n\s*\n/); let procs = []; - let procStats = {}; + let procStats = []; let list_new = {}; let allcpuu = 0; let allcpus = 0; @@ -864,49 +864,52 @@ function processLoad(proc, callback) { allcpuu = allcpuu + utime; allcpus = allcpus + stime; - procStats = { + procStats.push({ pid: pid, utime: utime, stime: stime, pcpu: 0, pcpuu: 0, pcpus: 0, - }; - if (name.toLowerCase().indexOf(name.toLowerCase()) >= 0) { - result = { - proc: name, - pid: pid, - pids: [pid], - cpu: 0, - mem: mem / os.totalmem() * 100 - }; + }); + if (name.toLowerCase().indexOf(proc.toLowerCase()) >= 0) { + if (result.pid === -1) { + result = { + proc: name, + pid: pid, + pids: [pid], + cpu: 0, + mem: mem / os.totalmem() * 100 + }; + } else { + result.pids.push(pid); + result.mem += mem / os.totalmem() * 100; + } } } - result.sleeping = result.all - result.running - result.blocked - result.unknown; - result.list = procs; - for (let i = 0; i < procStats.length; i++) { - let resultProcess = calcProcStatWin(procStats[i], allcpuu + allcpus, _process_cpu); - - // store pcpu in outer array - let listPos = result.map(function (e) { return e.pid; }).indexOf(resultProcess.pid); - if (listPos >= 0) { - result.cpu = resultProcess.pcpuu + resultProcess.pcpus; - } - - // save new values - list_new[resultProcess.pid] = { - pcpuu: resultProcess.pcpuu, - pcpus: resultProcess.pcpus, - utime: resultProcess.utime, - stime: resultProcess.stime - }; - } - // store old values - _process_cpu.all = allcpuu + allcpus; - _process_cpu.list = list_new; - _process_cpu.ms = Date.now() - _process_cpu.ms; - _process_cpu.result = result; } + for (let i = 0; i < procStats.length; i++) { + let resultProcess = calcProcStatWin(procStats[i], allcpuu + allcpus, _process_cpu); + + // store pcpu in outer array + let listPos = result.pids.indexOf(resultProcess.pid); + if (listPos >= 0) { + result.cpu = resultProcess.pcpuu + resultProcess.pcpus; + } + + // save new values + list_new[resultProcess.pid] = { + pcpuu: resultProcess.pcpuu, + pcpus: resultProcess.pcpus, + utime: resultProcess.utime, + stime: resultProcess.stime + }; + } + // store old values + _process_cpu.all = allcpuu + allcpus; + _process_cpu.list = list_new; + _process_cpu.ms = Date.now() - _process_cpu.ms; + _process_cpu.result = result; if (callback) { callback(result); } @@ -1001,9 +1004,6 @@ function processLoad(proc, callback) { resolve(result); } }); - } else { - if (callback) { callback(result); } - resolve(result); } } }); @@ -1011,6 +1011,3 @@ function processLoad(proc, callback) { } exports.processLoad = processLoad; - - -