diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2013-02-16 12:53:31 -0600 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2013-03-12 12:57:44 -0500 |
commit | 67944412247173c65b14e7eaeb20b961241e1bd5 (patch) | |
tree | 41695802cbe066136b9c64ad2f8c39d405e208b4 /sh | |
parent | 274d6eee662c7f4fe0233da08247c9e40af5c382 (diff) |
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
Diffstat (limited to 'sh')
-rw-r--r-- | sh/rc-mount.sh | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sh/rc-mount.sh b/sh/rc-mount.sh index 2bb14504..454f9f92 100644 --- a/sh/rc-mount.sh +++ b/sh/rc-mount.sh @@ -41,7 +41,8 @@ do_unmount() 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 - 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 case " $pids " in *" $$ "*) |