]> TLD Linux GIT Repositories - rc-scripts.git/commitdiff
- PLD merge: umount remaining filesystems one by one (using -R) option which helps...
authorMarcin Krol <hawk@tld-linux.org>
Tue, 21 May 2024 19:23:38 +0000 (21:23 +0200)
committerMarcin Krol <hawk@tld-linux.org>
Tue, 21 May 2024 19:23:38 +0000 (21:23 +0200)
rc.d/rc.shutdown

index db226b5001768b4af2e9f91e5786bb2188eccc98..8c86fa4cf64223a7d814aed6b41b3f1730ea92e4 100755 (executable)
@@ -80,8 +80,20 @@ remaining=$(awk -v ig="^($UMOUNT_IGNORE)$" 'BEGIN { gsub(/[\t ]+/, "|", ig); } \
                && $1 !~ /^(none|\/dev\/root)$/ \
                && $2 !~ ig {print $2}' /proc/mounts)
 while [ -n "$remaining" -a "$retry" -gt 0 ]; do
-       show "Unmounting file systems"; busy
-       ERRORS=$(umount -a $force -t noproc,nosysfs 2>&1); rc=$?
+       for mnt in $remaining; do
+               run_cmd "$(nls 'Umounting file system: %s' $mnt)" umount $force -R $mnt
+
+               # we might had unmounted /usr, recheck $TPUT availability
+               # but well. we need tput only for show() and busy() (ok() and fail() messages are already cached)
+               # TODO: look ahead the messages?
+               if is_yes "$TPUT"; then
+                   TPUT=
+                   rc_gettext_init
+               fi
+       done
+
+       show "Unmounting remainging file systems"; busy
+       ERRORS=$(umount -a $force -t noproc,nosysfs,notmpfs,nodevpts,nodevtmpfs 2>&1); rc=$
 
        # we might had unmounted /usr, recheck $TPUT availability
        # but well. we need tput only for show() and busy() (ok() and fail() messages are already cached)
@@ -95,7 +107,10 @@ while [ -n "$remaining" -a "$retry" -gt 0 ]; do
                ok
        else
                fail
-               [ -n "$ERRORS" ] && echo "$ERRORS"
+               if [ -n "$ERRORS" ]; then
+                      nls "Umount errors:"
+                      echo "$ERRORS"
+               fi
        fi
 
        sleep 2