diff options
Diffstat (limited to 'source/a/sysvinit-scripts/scripts/rc.K')
-rw-r--r-- | source/a/sysvinit-scripts/scripts/rc.K | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/source/a/sysvinit-scripts/scripts/rc.K b/source/a/sysvinit-scripts/scripts/rc.K index 68609753..8fc63fdf 100644 --- a/source/a/sysvinit-scripts/scripts/rc.K +++ b/source/a/sysvinit-scripts/scripts/rc.K @@ -57,9 +57,23 @@ if [ -x /etc/rc.d/rc.nfsd ]; then /etc/rc.d/rc.nfsd stop fi +# Kill any processes (typically gam) that would otherwise prevent +# unmounting NFS volumes: +unset FUSER_DELAY +for dir in $(/bin/mount | grep 'type nfs' | cut -d ' ' -f 3 ) ; do + echo "Killing processes holding NFS mount $dir open..." + # Background this to prevent fuser from also blocking shutdown: + /usr/bin/fuser -k -m $dir & + FUSER_DELAY=5 +done +# If fuser was run, let it have some delay: +if [ ! -z "$FUSER_DELAY" ]; then + sleep $FUSER_DELAY +fi + # Unmount any NFS, SMB, or CIFS filesystems: echo "Unmounting remote filesystems." -umount -a -r -t nfs,smbfs,cifs +/bin/umount -v -a -l -f -r -t nfs,smbfs,cifs # Shut down PCMCIA devices: if [ -x /etc/rc.d/rc.pcmcia ] ; then |