From: Harald Hoyer Date: Wed, 31 Mar 2021 08:18:27 +0000 (+0200) Subject: fix(multipath): revise multipathd-stop X-Git-Tag: 054~141 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7b8c78ff43a1f8e3690969e980d3d9d1dcb00c87;p=thirdparty%2Fdracut.git fix(multipath): revise multipathd-stop A shellcheck regression quoted `HARD` in ```shell kill "$HARD" "$pid" > /dev/null 2>&1 ``` which would error on an empty "HARD". Instead of fixing this, use `pkill` instead and also add it to the non-optional list of binaries to install, which was revised also. Fixes: https://github.com/dracutdevs/dracut/issues/1275 --- diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh index 681006d80..b6002c6a3 100755 --- a/modules.d/90multipath/module-setup.sh +++ b/modules.d/90multipath/module-setup.sh @@ -74,14 +74,18 @@ install() { fi } - inst_multiple -o \ - dmsetup \ + inst_multiple \ + pkill \ + pidof \ kpartx \ + dmsetup \ + multipath \ + multipathd + + inst_multiple -o \ mpath_wait \ mpathconf \ mpathpersist \ - multipath \ - multipathd \ xdrgetprio \ xdrgetuid \ /etc/xdrdevices.conf \ diff --git a/modules.d/90multipath/multipathd-stop.sh b/modules.d/90multipath/multipathd-stop.sh index cf9b782e9..cc5aece57 100755 --- a/modules.d/90multipath/multipathd-stop.sh +++ b/modules.d/90multipath/multipathd-stop.sh @@ -1,11 +1,13 @@ #!/bin/sh if [ -e /etc/multipath.conf ]; then - HARD="" - while pidof multipathd > /dev/null 2>&1; do - for pid in $(pidof multipathd); do - kill "$HARD" "$pid" > /dev/null 2>&1 - done - HARD="-9" - done + pkill multipathd > /dev/null 2>&1 + + if pidof multipathd > /dev/null 2>&1; then + sleep 0.2 + fi + + if pidof multipathd > /dev/null 2>&1; then + pkill -9 multipathd > /dev/null 2>&1 + fi fi