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