[Devel] [PATCH] scripts: use absolute binaries paths systemd-autofs-restart.sh
Stanislav Kinsburskiy
skinsbursky at virtuozzo.com
Fri Jun 2 18:47:42 MSK 2017
That's the way to support multiple distributions, including those without
$PATH variable being set.
https://jira.sw.ru/browse/PSBM-66967
Signed-off-by: Stanislav Kinsburskiy <skinsbursky at virtuozzo.com>
---
scripts/systemd-autofs-restart.sh | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/scripts/systemd-autofs-restart.sh b/scripts/systemd-autofs-restart.sh
index 153bdd9..39abc26 100755
--- a/scripts/systemd-autofs-restart.sh
+++ b/scripts/systemd-autofs-restart.sh
@@ -36,18 +36,26 @@ fi
JOIN_CT="$NS_ENTER -t $CRTOOLS_INIT_PID -m -u -p -n"
+BASENAME=/usr/bin/basename
+READLINK=/bin/readlink
+UMOUNT=/bin/umount
+MOUNT=/bin/mount
+RM=/bin/rm
+SYSTEMCTL=/bin/systemctl
+MKTEMP=/bin/mktemp
+
# Skip container, if it's not systemd based
-[ "$($JOIN_CT basename -- $($JOIN_CT readlink /proc/1/exe))" == "systemd" ] || exit 0
+[ "$($JOIN_CT $BASENAME -- $($JOIN_CT $READLINK /proc/1/exe))" == "systemd" ] || exit 0
-AUTOFS_SERVICES="$($JOIN_CT systemctl --no-legend -t automount \
+AUTOFS_SERVICES="$($JOIN_CT $SYSTEMCTL --no-legend -t automount \
--state=active list-units | awk '{ print $1 }')"
bindmount=""
function remove_bindmount {
if [ -n "$bindmount" ]; then
- $JOIN_CT umount $bindmount
- $JOIN_CT rm -rf $bindmount
+ $JOIN_CT $UMOUNT $bindmount
+ $JOIN_CT $RM -rf $bindmount
bindmount=""
fi
}
@@ -87,7 +95,7 @@ function bind_mount {
local from=$1
local to=$2
- $JOIN_CT mount --bind $from $to && return 0
+ $JOIN_CT $MOUNT --bind $from $to && return 0
echo "Failed to bind mount $from to $to"
return 1
@@ -106,7 +114,7 @@ function save_mountpoint {
# Nothing to do, if no file system is on top of autofs
[ "$top_mount_fs_type" = "autofs" ] && return
- bindmount=$($JOIN_CT mktemp -d)
+ bindmount=$($JOIN_CT $MKTEMP -d)
if [ -z "$bindmount" ]; then
echo "Failed to create temporary directory"
return 1
@@ -114,7 +122,7 @@ function save_mountpoint {
# No need to unmount fs on top of autofs:
# systemd will does it for us on service restart
- bind_mount $mountpoint $bindmount || $JOIN_CT rm -rf $bindmount
+ bind_mount $mountpoint $bindmount || $JOIN_CT $RM -rf $bindmount
}
function restore_mountpoint {
@@ -141,13 +149,13 @@ function restore_mountpoint {
function restart_service {
local service=$1
- local mountpoint=$($JOIN_CT systemctl show $service -p Where | sed 's/.*=//g')
+ local mountpoint=$($JOIN_CT $SYSTEMCTL show $service -p Where | sed 's/.*=//g')
# Try to move restored bind-mount aside and exit if Failed
# Nothing to do, if we Failed
save_mountpoint $mountpoint || return
- $JOIN_CT systemctl restart $service
+ $JOIN_CT $SYSTEMCTL restart $service
if [ $? -ne 0 ]; then
echo "Failed to restart $service service"
return
@@ -160,7 +168,7 @@ function restart_service {
function skip_service {
local service=$1
- local mountpoint=$($JOIN_CT systemctl show $service -p Where | sed 's/.*=//g')
+ local mountpoint=$($JOIN_CT $SYSTEMCTL show $service -p Where | sed 's/.*=//g')
if [ -z "$mountpoint" ]; then
echo "Failed to discover $service mountpoint"
More information about the Devel
mailing list