processLoad linux new version
This commit is contained in:
parent
95b93af551
commit
e978036c6f
@ -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] = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user