Support reading socket-only systemd unit info

Current code will only read unit info like unit name and instance name
from service unit. For socket-only unit, these fields are blank. This
patch adds support to read these fields from socket units.

Tested:
1. Existing entries in generated srvcfg-mgr.json is the same as before
2. Unit and instance name of socket-only units can be successfully read

Change-Id: Ibb4d75231f1767f2164d95294e126dd649d466f0
Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
1 file changed
tree: b695b0de8c2d484b77f15680e9cc133cfd819603
  1. inc/
  2. src/
  3. subprojects/
  4. .clang-format
  5. .gitignore
  6. LICENSE
  7. MAINTAINERS
  8. meson.build
  9. meson_options.txt
  10. OWNERS
  11. README.md
  12. srvcfg-manager.service
README.md

Service config manager

The service config manager provides a D-Bus interface to manage BMC services as described by the service management D-Bus interfaces.

The configuration settings are intended to persist across BMC reboots.

An example use case for this service is BMCWeb's implementation of the Redfish NetworkProtocol schema.

Design

Implementation details are described in the D-Bus interface README.

The service config manager generally makes configuration changes to systemd units via D-Bus interfaces.

The design pattern to add new services or controls is:

  • Determine if the service you want to control is socket activated.
  • To control the Running and Enabled properties of a service:
    • For a service which uses socket activation, control the socket.
    • For other services, control the service unit itself.