2009/7/28 Alexander Petrovsky <[email protected]>:
> Hi, it is may be good idea. But, I can't understand your code, why you do -
>  umount ${_dir} >/dev/null 2>&1 || { sleep 2; umount ${_dir} >/dev/null 2>&1
> || umount -f ${_dir} >/dev/null 2>&1; }
>
> instead
>  umount ${_dir} >/dev/null 2>&1 || umount -f ${_dir} >/dev/null 2>&1
>
> ?

Because when jail is shuting down, file system is still busy. I think
this is because of syslogd, which has no rc.d shutdown keyword, and so
it's been killed. Immediately after killing all jail processes, file
systems are unmounted.
It helps sleeping 1, 2 seconds and then trying to unmount it, and if
fs is still busy, force unmount it.


Maybe this is better:

--- /etc/rc.d/jail      2009-07-22 23:29:29.000000000 +0300
+++ /etc/rc.d/jail      2009-07-28 21:23:30.436217867 +0300
@@ -270,7 +270,7 @@
        _dir=$1

        if is_current_mountpoint ${_dir}; then
-               umount -f ${_dir} >/dev/null 2>&1
+               umount ${_dir} >/dev/null 2>&1 || umount -f ${_dir} >/dev/null 
2>&1
        else
                debug "Nothing mounted on ${_dir} - not unmounting"
        fi
@@ -700,6 +700,7 @@
                                killall -j ${_jail_id} -TERM > /dev/null 2>&1
                                sleep 1
                                killall -j ${_jail_id} -KILL > /dev/null 2>&1
+                               sleep 2
                                jail_umount_fs
                                echo -n " $_hostname"




-- 
Artis Caune

    Everything should be made as simple as possible, but not simpler.
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-jail
To unsubscribe, send any mail to "[email protected]"

Reply via email to