[Gabor Gombas]
> After the latest sysvinit/initscripts upgrades shutdown seems to be
> broken. This machine has (among other things) /sys and /dev/pts
> bind-mounted in a chroot.

Can you test this patch and see if it solve the problem?

Index: debian/initscripts/etc/init.d/umountnfs.sh
===================================================================
--- debian/initscripts/etc/init.d/umountnfs.sh  (revision 1017)
+++ debian/initscripts/etc/init.d/umountnfs.sh  (working copy)
@@ -65,14 +65,19 @@
                case "$FSTYPE" in
                  nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs)
                        DIRS="$MTPT $DIRS"
+                       KILLDIRS="$MTPT $KILLDIRS"
                        ;;
                  proc|procfs|linprocfs|devfs|devpts|usbfs|usbdevfs|sysfs)
                        DIRS="$MTPT $DIRS"
+                       # Avoid to kill processes using virtual file
+                       # systems in subdirectories, as they might be
+                       # bind-mounted to the toplevel mount points.
                        ;;
                esac
                case "$OPTS" in
                  _netdev|*,_netdev|_netdev,*|*,_netdev,*)
                        DIRS="$MTPT $DIRS"
+                       KILLDIRS="$MTPT $KILLDIRS"
                        ;;
                esac
        done
@@ -81,22 +86,25 @@
 
        if [ "$DIRS" ]
        then
-               # Kill all processes using the directories we try to umount
+               # Kill all processes using the directories with
+               # non-virtual file systems we try to umount
                if [ -x /bin/fuser ] ; then
+                   if [ "$KILLDIRS" ] ; then
                        [ "$VERBOSE" = no ] || log_action_begin_msg "Asking 
non-system processes to terminate"
-                       fuser -s -k -INT -m $DIRS
+                       fuser -s -k -INT -m $KILLDIRS
                        [ "$VERBOSE" = no ] || log_action_end_msg 0
 
                        for count in 1 2 3 4 5; do # Wait up to 5 seconds
                            sleep 1
-                           fuser -s -m $DIRS || break
+                           fuser -s -m $KILLDIRS || break
                        done
 
-                       if fuser -s -m $DIRS; then
+                       if fuser -s -m $KILLDIRS; then
                            [ "$VERBOSE" = no ] || log_action_begin_msg 
"Killing non-system processes"
-                           fuser -s -k -TERM -m $DIRS
+                           fuser -s -k -TERM -m $KILLDIRS
                            [ "$VERBOSE" = no ] || log_action_end_msg 0
                        fi
+                   fi
                else
                    log_warning_msg "Missing fuser, using sendsigs to kill all 
programs"
                    log_warning_msg "Install psmisc if you want to kill only 
processes"


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to