processLoad linux new version

This commit is contained in:
Sebastian Hildebrandt 2021-01-19 18:05:37 +01:00
parent 95b93af551
commit e978036c6f

View File

@ -902,8 +902,6 @@ function processLoad(proc, callback) {
} }
let processes = processesString.split('|'); let processes = processesString.split('|');
let result = []; let result = [];
let dataProcesses = [];
let allProcesses = [];
const procSanitized = util.isPrototypePolluted() ? '' : util.sanitizeShellString(proc); const procSanitized = util.isPrototypePolluted() ? '' : util.sanitizeShellString(proc);
@ -1106,11 +1104,15 @@ function processLoad(proc, callback) {
} }
if (_linux) { if (_linux) {
// calc process_cpu - ps is not accurate in linux! // calc process_cpu - ps is not accurate in linux!
result.forEach(function (item) {
item.cpu = 0;
})
let cmd = 'cat /proc/stat | grep "cpu "'; let cmd = 'cat /proc/stat | grep "cpu "';
for (let i = 0; i < result.pids.length; i++) { for (let i in result) {
cmd += (';cat /proc/' + result.pids[i] + '/stat'); for (let j in result[i].pids) {
cmd += (';cat /proc/' + result[i].pids[j] + '/stat');
}
} }
exec(cmd, { maxBuffer: 1024 * 20000 }, function (error, stdout) { exec(cmd, { maxBuffer: 1024 * 20000 }, function (error, stdout) {
let curr_processes = stdout.toString().split('\n'); let curr_processes = stdout.toString().split('\n');
@ -1120,14 +1122,23 @@ function processLoad(proc, callback) {
// process // process
let list_new = {}; let list_new = {};
let resultProcess = {}; let resultProcess = {};
result.cpu = 0;
for (let i = 0; i < curr_processes.length; i++) { for (let i = 0; i < curr_processes.length; i++) {
resultProcess = calcProcStatLinux(curr_processes[i], all, _process_cpu); resultProcess = calcProcStatLinux(curr_processes[i], all, _process_cpu);
if (resultProcess.pid) { if (resultProcess.pid) {
// find result item
let resultItemId = -1;
for (let i in result) {
if (result[i].pids.indexOf(resultProcess.pid) >= 0) {
resultItemId = i;
}
}
// store pcpu in outer result // store pcpu in outer result
result.cpu += resultProcess.cpuu + resultProcess.cpus; if (resultItemId >= 0) {
result[resultItemId].cpu += resultProcess.cpuu + resultProcess.cpus;
}
// save new values // save new values
list_new[resultProcess.pid] = { list_new[resultProcess.pid] = {