Applications must use service manager daemon to configure services like phosphor-ipmi-net, bmcweb, obmc-console etc in the system, instead of directly controlling the same using 'systemd' or 'iptables'. This way client applications doesn't need to change to configure services, when the implementations differ. The list of services supported are:
- "bmcweb"
- "obmc-console"`
- "phosphor-ipmi-kcs"
- "phosphor-ipmi-net"
- "obmc-ikvm"
Service manager daemon will create D-Bus objects for configurable services in
the system under the object path /xyz/openbmc_project/control/service
. For
each instance of the service there will be a D-Bus object
/xyz/openbmc_project/control/service/<service-name>
. For example, if there are
two instances of phosphor-ipmi-net
then there will be two D-Bus objects
/xyz/openbmc_project/control/service/phosphor_2dipmi_2dnet_40eth0
and
/xyz/openbmc_project/control/service/phosphor_2dipmi_2dnet_40eth1
. The D-Bus
object manages both the associated service and socket unit files. The D-Bus
object implements the interface
xyz.openbmc_project.Control.Service.Attributes
. Network services like bmcweb,
phosphor-ipmi-net also implements the
xyz.openbmc_project.Control.Service.SocketAttributes
interface.
In order to update the property value of a service, override.conf
file under
/etc/systemd/system/<Service unit name>/
is updated and the unit is restarted
through org.freedesktop.systemd1
.
-
Enabled - indicates whether the service is enabled or disabled,
true
indicates the service will be started on the next boot andfalse
indicates that service will not be started on the next boot. This property can be used to change the service behaviour on the next boot,true
to start the service on the next boot andfalse
to not start the service on the next boot. Even if the service is disabled, on the next boot it can be started if there are other service dependencies to satisfy. The service cannot be enabled if the service is masked. -
Masked - indicates whether the service is masked,
true
indicates the service is permanently disabled andfalse
indicates the service is enabled. If the property is set totrue
, then the service is permanently disabled and the service is stopped. If the property is set tofalse
then the service is enabled and starts running. -
Running - indicates the current state of the service,
true
if the service is running andfalse
if the service is not running. This property can be used to change the running state of the service, to start the service set totrue
and to stop the service set tofalse
. The service cannot be started if the service is Masked.
- Port - Port number to which the service is configured to listen, if applicable for service. Services like obmc-console will not implement this interface.
To permanently disable a service the Masked
property under the interface
xyz.openbmc_project.Control.Service.Attributes
needs to be set to true
and
vice versa to enable a service.
RMCP+ port number can be modified from the default port number 623 to a custom
one by updating the Port
property value under the interface
xyz.openbmc_project.Control.Service.SocketAttributes
.