services() added possibility to specify ALL services (*) for win

This commit is contained in:
Sebastian Hildebrandt 2018-11-23 16:59:27 +01:00
parent 68ba1ab306
commit 88894fb8cc
3 changed files with 46 additions and 36 deletions

View File

@ -100,6 +100,7 @@ Other changes
| Version | Date | Comment | | Version | Date | Comment |
| -------------- | -------------- | -------- | | -------------- | -------------- | -------- |
| 3.50.1 | 2018-11-23 | `services()` added possibility to specify ALL services "*" for win |
| 3.50.0 | 2018-11-23 | `services()` added possibility to specify ALL services "*" for linux | | 3.50.0 | 2018-11-23 | `services()` added possibility to specify ALL services "*" for linux |
| 3.49.4 | 2018-11-21 | `battery()` timeremaining optimization (linux) thanks to Jorai Rijsdijk | | 3.49.4 | 2018-11-21 | `battery()` timeremaining optimization (linux) thanks to Jorai Rijsdijk |
| 3.49.3 | 2018-11-20 | `memLayout()` optimized parsing (win) | | 3.49.3 | 2018-11-20 | `memLayout()` optimized parsing (win) |

View File

@ -64,7 +64,7 @@ async function cpu() {
(last 7 major and minor version releases) (last 7 major and minor version releases)
- Version 3.50.0: `services()` added possibility to specify ALL services "*" for linux - Version 3.50.0: `services()` added possibility to specify ALL services "*" for linux/win
- Version 3.49.0: `uuid()` added - os specific uuid (per installation) - Version 3.49.0: `uuid()` added - os specific uuid (per installation)
- Version 3.48.0: `osInfo()` added build, serial (Windows/macOS) - Version 3.48.0: `osInfo()` added build, serial (Windows/macOS)
- Version 3.47.0: `version()` added docker, postfix - Version 3.47.0: `version()` added docker, postfix
@ -381,6 +381,7 @@ I also created a nice little command line tool called [mmon][mmon-github-url] (
| si.services('mysql, apache2', cb) | [{...}] | X | X | X | X | | pass comma separated string of services<br>pass "*" for ALL services (linux only) | | si.services('mysql, apache2', cb) | [{...}] | X | X | X | X | | pass comma separated string of services<br>pass "*" for ALL services (linux only) |
| | [0].name | X | X | X | X | | name of service | | | [0].name | X | X | X | X | | name of service |
| | [0].running | X | X | X | X | | true / false | | | [0].running | X | X | X | X | | true / false |
| | [0].startmode | | | | X | | manual, automatic, ... |
| | [0].pcpu | X | X | X | | | process % CPU | | | [0].pcpu | X | X | X | | | process % CPU |
| | [0].pmem | X | X | X | | | process % MEM | | | [0].pmem | X | X | X | | | process % MEM |

View File

@ -114,12 +114,13 @@ function services(srv, callback) {
}); });
let singleSrv = allSrv.filter(item => { return item.name === srv; }); let singleSrv = allSrv.filter(item => { return item.name === srv; });
data.push({ data.push({
'name': srv, name: srv,
'running': (allSrv.length && singleSrv.length ? singleSrv[0].running : ps.length > 0), running: (allSrv.length && singleSrv.length ? singleSrv[0].running : ps.length > 0),
'pcpu': parseFloat((ps.reduce(function (pv, cv) { startmode: '',
pcpu: parseFloat((ps.reduce(function (pv, cv) {
return pv + parseFloat(cv.trim().split(' ')[0]); return pv + parseFloat(cv.trim().split(' ')[0]);
}, 0)).toFixed(2)), }, 0)).toFixed(2)),
'pmem': parseFloat((ps.reduce(function (pv, cv) { pmem: parseFloat((ps.reduce(function (pv, cv) {
return pv + parseFloat(cv.trim().split(' ')[1]); return pv + parseFloat(cv.trim().split(' ')[1]);
}, 0)).toFixed(2)) }, 0)).toFixed(2))
}); });
@ -135,10 +136,11 @@ function services(srv, callback) {
return e.indexOf(srv) !== -1; return e.indexOf(srv) !== -1;
}); });
data.push({ data.push({
'name': srv, name: srv,
'running': ps.length > 0, running: ps.length > 0,
'pcpu': 0, startmode: '',
'pmem': 0 pcpu: 0,
pmem: 0
}); });
}); });
if (callback) { callback(data); } if (callback) { callback(data); }
@ -146,10 +148,11 @@ function services(srv, callback) {
} else { } else {
srvs.forEach(function (srv) { srvs.forEach(function (srv) {
data.push({ data.push({
'name': srv, name: srv,
'running': false, running: false,
'pcpu': 0, startmode: '',
'pmem': 0 pcpu: 0,
pmem: 0
}); });
}); });
if (callback) { callback(data); } if (callback) { callback(data); }
@ -171,40 +174,45 @@ function services(srv, callback) {
for (let i = 0; i < serviceSections.length; i++) { for (let i = 0; i < serviceSections.length; i++) {
if (serviceSections[i].trim() !== '') { if (serviceSections[i].trim() !== '') {
let lines = serviceSections[i].trim().split('\r\n'); let lines = serviceSections[i].trim().split('\r\n');
let srv = util.getValue(lines, 'Name', '=', true).toLowerCase(); let srvName = util.getValue(lines, 'Name', '=', true).toLowerCase();
let started = util.getValue(lines, 'Started', '=', true); let started = util.getValue(lines, 'Started', '=', true);
if (srvs.indexOf(srv) >= 0) { let startMode = util.getValue(lines, 'StartMode', '=', true);
if (srv === '*' || srvs.indexOf(srvName) >= 0) {
data.push({ data.push({
'name': srv, name: srvName,
'running': (started === 'TRUE'), running: (started === 'TRUE'),
'pcpu': 0, startmode: startMode,
'pmem': 0 pcpu: 0,
pmem: 0
}); });
dataSrv.push(srv); dataSrv.push(srvName);
} }
} }
} }
let srvsMissing = srvs.filter(function (e) { if (srv !== '*') {
return dataSrv.indexOf(e) === -1; let srvsMissing = srvs.filter(function (e) {
}); return dataSrv.indexOf(e) === -1;
srvsMissing.forEach(function (srv) {
data.push({
'name': srv,
'running': false,
'pcpu': 0,
'pmem': 0
}); });
}); srvsMissing.forEach(function (srvName) {
data.push({
name: srvName,
running: false,
startmode: '',
pcpu: 0,
pmem: 0
});
});
}
if (callback) { callback(data); } if (callback) { callback(data); }
resolve(data); resolve(data);
} else { } else {
srvs.forEach(function (srv) { srvs.forEach(function (srvName) {
data.push({ data.push({
'name': srv, name: srvName,
'running': false, running: false,
'pcpu': 0, startmode: '',
'pmem': 0 pcpu: 0,
pmem: 0
}); });
}); });
if (callback) { callback(data); } if (callback) { callback(data); }