X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fscripts%2Flustrefs;h=18c32b1a795a8a43a0e53703ecd74acdfc943a47;hb=ee0a3e8ae08b7b72598cb797d023046b9f95ab81;hp=8148b75c57d69418dc6c0a588d11ba59328eef34;hpb=fbb7ead129258897f5a5d5c9ce28d31fbbe5bca2;p=fs%2Flustre-release.git diff --git a/lustre/scripts/lustrefs b/lustre/scripts/lustrefs index 8148b75..18c32b1 100644 --- a/lustre/scripts/lustrefs +++ b/lustre/scripts/lustrefs @@ -9,27 +9,67 @@ # Authors: Bill Nottingham # Miquel van Smoorenburg, # -# chkconfig: 345 26 74 +# chkconfig: - 26 74 # description: Mounts and unmounts all Lustre mount points. # ### BEGIN INIT INFO -# Provides: $local_fs $remote_fs +# Provides: lustrefs +# Required-Start: $network $remote_fs +sshd +lustre +# Required-Stop: $network $remote_fs +# Should-Start: +# Should-Stop: +# Default-Start: 3 5 +# Default-Stop: 0 1 2 6 +# Short-Description: Mounts and unmounts all Lustre mount points. ### END INIT INFO -[ -f /etc/sysconfig/network ] || exit 0 -. /etc/init.d/functions -. /etc/sysconfig/network +# Source function library. +if [ -f /etc/init.d/functions ]; then + . /etc/init.d/functions +fi + +# Source networking configuration. +if [ -f /etc/sysconfig/network ]; then + . /etc/sysconfig/network +fi + +# Source lsb-functions. +if [ -f /lib/lsb/init-functions ]; then + . /lib/lsb/init-functions +fi + +[ -x /sbin/fuser ] && FUSER=/sbin/fuser +[ -x /bin/fuser ] && FUSER=/bin/fuser # Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0 +# Red Hat has it's own "action"-function for RHGB-messages. +lustre_action () { + STRING=$1 + shift + if [ $(typeset -F action) ]; then + action "$STRING" $* + rc=$? + else + $* + rc=$? + if [ $rc = 0 ]; then + log_success_msg "$STRING" + else + log_failure_msg "$STRING" + fi + fi + return $rc +} + LUSTREFSTAB=`LC_ALL=C awk '!/^#/ && $3 == "lustre" && $4 !~ /noauto/ { print $2 }' /etc/fstab` -LUSTREMTAB=`LC_ALL=C awk '!/^#/ && $3 == "lustre" { print $2 }' /proc/mounts` +LUSTREMTAB=`LC_ALL=C awk '!/^#/ && ($3 ~ "lustre") { print $2 }' /proc/mounts` # See how we were called. case "$1" in start) - [ -n "$LUSTREFSTAB" ] && action $"Mounting Lustre filesystems: " mount -a -t lustre + [ -n "$LUSTREFSTAB" ] && lustre_action $"Mounting Lustre filesystems: " mount -a -t lustre touch /var/lock/subsys/lustrefs ;; stop) @@ -40,14 +80,14 @@ case "$1" in while [ -n "$remaining" -a "$retry" -gt 0 ] do if [ "$retry" -lt 3 ]; then - action $"Unmounting Lustre filesystems (retry): " umount -f -a -t lustre + lustre_action $"Unmounting Lustre filesystems (retry): " umount -f -a -t lustre else - action $"Unmounting Lustre filesystems: " umount -a -t lustre + lustre_action $"Unmounting Lustre filesystems: " umount -a -t lustre fi sleep 2 remaining=`LC_ALL=C awk '!/^#/ && $3 ~ /^lustre/ && $2 != "/" {print $2}' /proc/mounts` [ -z "$remaining" ] && break - /sbin/fuser -k -m $sig $remaining >/dev/null + $FUSER -k -m $sig $remaining >/dev/null sleep 5 retry=$(($retry - 1)) sig=-9