A module to view the current status of your systemd services. Its response is a object containing keys named as given unit names in SMF options with another object as value. This object contains the properties of the given unit as key/value pairs, for example:
{
"lightdm.service": {
"UnitType": "service",
"Type": "dbus",
"Restart": "always",
"RemainAfterExit": false,
"MainPID": 759,
"Result": "success",
"CleanResult": "success",
"MemoryCurrent": 197627904,
"TasksCurrent": 6,
"Nice": 0,
"Id": "lightdm.service",
"Description": "Light Display Manager",
"LoadState": "loaded",
"ActiveState": "active",
"SubState": "running",
"UnitFileState": "enabled",
"ActiveEnterTimestamp": "Fri 2019-09-27 18:25:59 CEST",
"ActiveEnterTimestampMonotonic": 86125951
}
}
The output is parsed down from the console command: systemctl show lightdm.service --property Type,Restart,...
You can simply add it with the server-base function, for example:
server.addModule('systemd', require('@server-state/systemd-module'), [
{
name: 'apache2'
},
{
name: 'home.mount',
addProps: 'Options'
},
{
name: 'user.slice',
addProps: 'TasksCurrent',
defaults: false
}
]);
to your current api server. This results in the following output:
{
"apache2.service": {
"UnitType": "service",
"Type": "",
"Restart": false,
"RemainAfterExit": false,
"MainPID": 0,
"Result": "success",
"CleanResult": "success",
"MemoryCurrent": "[not set]",
"TasksCurrent": "[not set]",
"Nice": 0,
"Id": "apache2.service",
"Description": "apache2.service",
"LoadState": "not-found",
"ActiveState": "inactive",
"SubState": "dead",
"UnitFileState": "",
"ActiveEnterTimestamp": "",
"ActiveEnterTimestampMonotonic": 0
},
"home.mount": {
"UnitType": "mount",
"Where": "/home",
"What": "/dev/sda3",
"Options": "rw,relatime",
"Type": "ext4",
"LazyUnmount": false,
"Result": "success",
"Id": "home.mount",
"Description": "/home",
"LoadState": "loaded",
"ActiveState": "active",
"SubState": "mounted",
"UnitFileState": "generated",
"ActiveEnterTimestamp": "Fri 2019-09-27 18:25:58 CEST",
"ActiveEnterTimestampMonotonic": 84831816
},
"user.slice": {
"UnitType": "slice",
"TasksCurrent": 647
}
}
You can adjust the properties from the results in the options array.
The name
key is mandatory and defines the systemd unit.
For different unit types, use the unit extension from systemd, for example system.slice
or boot.mount
.
If no extension is specified, a service
unit is assumed (systemd default).
There are default preset properties for different unit types you can use or disable them with the defaults
key set to false
.
(See constants.js)
You also can give your own properties (comma separated) to add to the resulting object, for example Requires,After
.
This output generates a straight base to provide other applications useful information like server-state example client-base.
This official module belongs to the organization server-state.