1# Service config manager 2 3The service config manager provides a D-Bus interface to manage BMC services as 4described by the [service management D-Bus interfaces][]. 5 6The configuration settings are intended to persist across BMC reboots. 7 8An example use case for this service is BMCWeb's implementation of the Redfish 9NetworkProtocol schema. 10 11[service management d-bus interfaces]: 12 https://github.com/openbmc/phosphor-dbus-interfaces/tree/master/yaml/xyz/openbmc_project/Control/Service 13[bmcweb's implementation of the redfish networkprotocol schema]: 14 https://github.com/openbmc/bmcweb/blob/master/redfish-core/lib/network_protocol.hpp 15 16## Design 17 18Implementation details are described in the [D-Bus interface README]. 19 20The service config manager generally makes configuration changes to `systemd` 21units via D-Bus interfaces. 22 23The design pattern to add new services or controls is: 24 25- Determine if the service you want to control is socket activated. 26- To control the `Running` and `Enabled` properties of a service: 27 - For a service which uses socket activation, control the socket. 28 - For other services, control the service unit itself. 29 30[d-bus interface readme]: 31 https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/yaml/xyz/openbmc_project/Control/Service/README.md 32