From 4318533e1493bfab622b64efc1b799426c812c26 Mon Sep 17 00:00:00 2001 From: Martin Wilck Date: Tue, 7 Dec 2021 18:30:16 +0100 Subject: [PATCH] fix(multipath): check if mpathconf is available Not all distributions utilize and ship the mpathconf utilitiy. Avoid error messages and systemd complaints about multipathd-configure.service in this case. --- modules.d/90multipath/module-setup.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh index 05222389..541e243a 100755 --- a/modules.d/90multipath/module-setup.sh +++ b/modules.d/90multipath/module-setup.sh @@ -60,6 +60,10 @@ installkernel() { hostonly='' dracut_instmods -o -s "$_funcs" "=drivers/scsi" "=drivers/md" ${_s390drivers:+"$_s390drivers"} } +mpathconf_installed() { + command -v mpathconf &> /dev/null +} + # called by dracut install() { local -A _allow @@ -104,7 +108,8 @@ install() { /etc/multipath/* \ "$config_dir"/* - [[ $hostonly ]] && [[ $hostonly_mode == "strict" ]] && { + mpathconf_installed \ + && [[ $hostonly ]] && [[ $hostonly_mode == "strict" ]] && { for_each_host_dev_and_slaves_all add_hostonly_mpath_conf if ((${#_allow[@]} > 0)); then local -a _args @@ -128,9 +133,11 @@ install() { fi if dracut_module_included "systemd"; then - inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service" + if mpathconf_installed; then + inst_simple "${moddir}/multipathd-configure.service" "${systemdsystemunitdir}/multipathd-configure.service" + $SYSTEMCTL -q --root "$initdir" enable multipathd-configure.service + fi inst_simple "${moddir}/multipathd.service" "${systemdsystemunitdir}/multipathd.service" - $SYSTEMCTL -q --root "$initdir" enable multipathd-configure.service $SYSTEMCTL -q --root "$initdir" enable multipathd.service else inst_hook pre-trigger 02 "$moddir/multipathd.sh"