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 |
| -------------- | -------------- | -------- |
| 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.49.4 | 2018-11-21 | `battery()` timeremaining optimization (linux) thanks to Jorai Rijsdijk |
| 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)
- 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.48.0: `osInfo()` added build, serial (Windows/macOS)
- 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) |
| | [0].name | X | X | X | X | | name of service |
| | [0].running | X | X | X | X | | true / false |
| | [0].startmode | | | | X | | manual, automatic, ... |
| | [0].pcpu | X | X | X | | | process % CPU |
| | [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; });
data.push({
'name': srv,
'running': (allSrv.length && singleSrv.length ? singleSrv[0].running : ps.length > 0),
'pcpu': parseFloat((ps.reduce(function (pv, cv) {
name: srv,
running: (allSrv.length && singleSrv.length ? singleSrv[0].running : ps.length > 0),
startmode: '',
pcpu: parseFloat((ps.reduce(function (pv, cv) {
return pv + parseFloat(cv.trim().split(' ')[0]);
}, 0)).toFixed(2)),
'pmem': parseFloat((ps.reduce(function (pv, cv) {
pmem: parseFloat((ps.reduce(function (pv, cv) {
return pv + parseFloat(cv.trim().split(' ')[1]);
}, 0)).toFixed(2))
});
@ -135,10 +136,11 @@ function services(srv, callback) {
return e.indexOf(srv) !== -1;
});
data.push({
'name': srv,
'running': ps.length > 0,
'pcpu': 0,
'pmem': 0
name: srv,
running: ps.length > 0,
startmode: '',
pcpu: 0,
pmem: 0
});
});
if (callback) { callback(data); }
@ -146,10 +148,11 @@ function services(srv, callback) {
} else {
srvs.forEach(function (srv) {
data.push({
'name': srv,
'running': false,
'pcpu': 0,
'pmem': 0
name: srv,
running: false,
startmode: '',
pcpu: 0,
pmem: 0
});
});
if (callback) { callback(data); }
@ -171,40 +174,45 @@ function services(srv, callback) {
for (let i = 0; i < serviceSections.length; i++) {
if (serviceSections[i].trim() !== '') {
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);
if (srvs.indexOf(srv) >= 0) {
let startMode = util.getValue(lines, 'StartMode', '=', true);
if (srv === '*' || srvs.indexOf(srvName) >= 0) {
data.push({
'name': srv,
'running': (started === 'TRUE'),
'pcpu': 0,
'pmem': 0
name: srvName,
running: (started === 'TRUE'),
startmode: startMode,
pcpu: 0,
pmem: 0
});
dataSrv.push(srv);
dataSrv.push(srvName);
}
}
}
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
if (srv !== '*') {
let srvsMissing = srvs.filter(function (e) {
return dataSrv.indexOf(e) === -1;
});
});
srvsMissing.forEach(function (srvName) {
data.push({
name: srvName,
running: false,
startmode: '',
pcpu: 0,
pmem: 0
});
});
}
if (callback) { callback(data); }
resolve(data);
} else {
srvs.forEach(function (srv) {
srvs.forEach(function (srvName) {
data.push({
'name': srv,
'running': false,
'pcpu': 0,
'pmem': 0
name: srvName,
running: false,
startmode: '',
pcpu: 0,
pmem: 0
});
});
if (callback) { callback(data); }