Make fuser command time out
This avoids situations in which fuser hangs because of open files on remote file systems when the remote system goes down. I have also passed this bug on to the maintainers of psmisc since it should really be fixed in fuser. This is based on a patch submitted by evermind@tuxfamily.org Reported-by: evermind@tuxfamily.org X-Gentoo-Bug: 455458 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=455458
This commit is contained in:
parent
274d6eee66
commit
6794441224
@ -20,6 +20,10 @@
|
|||||||
# consolefont, numlock, etc ...)
|
# consolefont, numlock, etc ...)
|
||||||
rc_tty_number=12
|
rc_tty_number=12
|
||||||
|
|
||||||
|
# This is how long fuser should wait for a remote server to respond. The
|
||||||
|
# default is 60 seconds, but it can be adjusted here.
|
||||||
|
#rc_fuser_timeout=60
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# CGROUPS RESOURCE MANAGEMENT
|
# CGROUPS RESOURCE MANAGEMENT
|
||||||
|
|
||||||
|
@ -41,7 +41,8 @@ do_unmount()
|
|||||||
retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1
|
retry=4 # Effectively TERM, sleep 1, TERM, sleep 1, KILL, sleep 1
|
||||||
while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do
|
while ! LC_ALL=C $cmd "$mnt" 2>/dev/null; do
|
||||||
if type fuser >/dev/null 2>&1; then
|
if type fuser >/dev/null 2>&1; then
|
||||||
pids="$(fuser $f_opts "$mnt" 2>/dev/null)"
|
pids="$(timeout -k 10 -s KILL "${rc_fuser_timeout:-60}" \
|
||||||
|
fuser $f_opts "$mnt" 2>/dev/null)"
|
||||||
fi
|
fi
|
||||||
case " $pids " in
|
case " $pids " in
|
||||||
*" $$ "*)
|
*" $$ "*)
|
||||||
|
Loading…
Reference in New Issue
Block a user