diff options
Diffstat (limited to 'meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon')
4 files changed, 27 insertions, 4 deletions
diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules index 070d88f51..503b2d002 100644 --- a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-hwmon.rules @@ -1 +1,2 @@ -SUBSYSTEM=="hwmon", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xyz.openbmc_project.Hwmon@%E{OF_FULLNAME}.service" +SUBSYSTEM=="hwmon", ACTION=="add", RUN="/usr/bin/start_hwmon.sh start %p %E{OF_FULLNAME}" +SUBSYSTEM=="hwmon", ACTION=="remove", RUN="/usr/bin/start_hwmon.sh stop %p %E{OF_FULLNAME}" diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules index f332d11ac..45fb4b0fb 100644 --- a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/70-iio.rules @@ -1 +1,2 @@ -SUBSYSTEM=="iio", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="xyz.openbmc_project.Hwmon@%E{OF_FULLNAME}.service" +SUBSYSTEM=="iio", ACTION=="add", RUN="/usr/bin/start_hwmon.sh start %p %E{OF_FULLNAME}" +SUBSYSTEM=="iio", ACTION=="remove", RUN="/usr/bin/start_hwmon.sh stop %p %E{OF_FULLNAME}" diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh new file mode 100644 index 000000000..cde0f96ca --- /dev/null +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/start_hwmon.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +action=$1 +devpath=$2 +of_fullname=$3 + +#Use of_fullname if it's there, otherwise use devpath. + +path=$of_fullname +if [ -z "$path" ] +then + path=$devpath + + if [[ "$path" =~ (.*)/hwmon/hwmon[0-9]+$ ]]; + then + path=${BASH_REMATCH[1]} + fi +fi + +path="${path//:/--}" + +systemctl $action 'xyz.openbmc_project.Hwmon@'$path'.service' diff --git a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service index 8dca3ad4b..9d3e2635e 100644 --- a/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service +++ b/meta-phosphor/common/recipes-phosphor/sensors/phosphor-hwmon/xyz.openbmc_project.Hwmon@.service @@ -1,11 +1,10 @@ [Unit] Description=Phosphor Hwmon Poller ConditionFileNotEmpty=/etc/default/obmc/hwmon/%I.conf -StopWhenUnneeded=true After=xyz.openbmc_project.ObjectMapper.service [Service] -Restart=always +Restart=on-failure ExecStart=/usr/bin/env phosphor-hwmon-readd -o %f SyslogIdentifier=phosphor-hwmon-readd EnvironmentFile=/etc/default/obmc/hwmon/%I.conf |