--- a/lib/rc/sh/rc-mount.sh 2013-02-04 15:06:20.492478073 +0100 +++ b/lib/rc/sh/rc-mount.sh 2013-02-05 11:15:12.159854818 +0100 @@ -41,6 +41,16 @@ retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1 while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do if type fuser >/dev/null 2>&1; then + timeout=60 + while true;do + sleep 3s; + if [ "$timeout" -le 0 ];then + pid_of_user="$(ps -A -o pid,comm,args|grep "fuser $f_opts "$mnt""|awk '$2 !~ /grep/ {print $1}')" + [ -n "$pid_of_user" ] && kill -KILL "$pid_of_user" + break + fi + let timeout-=3 + done & pids="$(fuser $f_opts "$mnt" 2>/dev/null)" fi case " $pids " in