Start phoshphor-pid-control after fansensor
Occasionally, phosphor-pid-control fails to start logging:
swampd[2688]: terminate called after throwing an instance of 'std::runtime_error'
swampd[2688]: what(): ObjectMapper Call Failure
This happens multiple times:
systemd[1]: phosphor-pid-control.service: Main process exited, code=killed, status=6/ABRT
systemd[1]: phosphor-pid-control.service: Failed with result 'signal'.
systemd[1]: phosphor-pid-control.service: Service RestartSec=1s expired, scheduling restart.
systemd[1]: phosphor-pid-control.service: Scheduled restart job, restart counter is at 2.
systemd[1]: Stopped Swampd Margin-based Fan Control Daemon.
systemd[1]: phosphor-pid-control.service: Start request repeated too quickly.
systemd[1]: phosphor-pid-control.service: Failed with result 'signal'.
systemd[1]: Failed to start Swampd Margin-based Fan Control Daemon.
and systemd gives up and stops trying to restart the service.
$ systemctl --no-page status phosphor-pid-control.service
* phosphor-pid-control.service - Swampd Margin-based Fan Control Daemon
Loaded: loaded (/lib/systemd/system/phosphor-pid-control.service; enabled; vendor preset: enabled)
Active: failed (Result: signal) since Thu 2019-10-31 18:05:11 UTC; 1min 56s ago
Process: 2738 ExecStart=/usr/bin/swampd (code=killed, signal=ABRT)
Main PID: 2738 (code=killed, signal=ABRT)
xyz.openbmc_project.fansensor.service is the service from dbus-sensors
that phosphor-pid-control uses to interact with the fans and pwms.
phosphor-pid-control should not start until after fansensor.
Tested:
swampd comes up reliably on a system using
xyz.openbmc_project.fansensor.service. I have not tried a system that
isn't using dbus-sensors.
Signed-off-by: Peter Lundgren <peterlundgren@google.com>
Change-Id: Iec019bfabcc77279c7dfe8d4899ac07c1c41a428
diff --git a/phosphor-pid-control.service.in b/phosphor-pid-control.service.in
index aa29377..d0244fe 100644
--- a/phosphor-pid-control.service.in
+++ b/phosphor-pid-control.service.in
@@ -1,5 +1,6 @@
[Unit]
Description=Phosphor-Pid-Control Margin-based Fan Control Daemon
+After=xyz.openbmc_project.fansensor.service
[Service]
Restart=always