Alexander Leidinger wrote:
Quoting Miroslav Lachman <000.f...@quip.cz> (from Tue, 05 Jan 2010
11:45:34 +0100):

Alexander Leidinger wrote:
On Mon, 07 Dec 2009 08:03:53 +0100 Alexander Leidinger
<alexan...@leidinger.net> wrote:

Hi,

now that jails are started in the background (which is good, to

I just realized yesterday that it also stops in parallel (in the
background). This is bad. It may be the case that a jail is not fully
stopped via the rc scripts when the OS decides to kill the remaining
processes during a shutdown.

My first reaction is to only allow to start in the background, but
everything else needs to be serialized.

Any objections or better ideas out there?

Maybe stopping can be done in parallel, but rc script should wait (in
loop) until all jails are stopped or some configurable timeout (for
example 60 seconds).

Feel free to come up with a proof of concept... but the timeout on stop
should be "forever" IMO. If you have a busy software which needs to be
shutdown correctly for data safety or consistency reasons, I do not want
that a reboot or shutdown prevents the correct shutdown.

I misunderstand the whole thing from the begining. It's all about wording "background" and "parallel".

My first understanding was if I have 4 jails, they are started in parallel (each other)
something like:

for J in jail1 jail2 jail3 jail4
do
    jail_start $J &
done

and similar for stoping them.

But now I see that it is just a start jails in serial as usual but rc.d/jail runs in the background, so next rc script will start right after rc.d/jail, not waiting to jails come up.

Both approaches have its pros and cons.

In the first case (starting and stopping each jail in the background) stopping can be easy as:

for J in $jail_list
do
    jail_stop $J &
done

while [ -n "`jls`" ]
do
    sleep 1
done

echo "all jails were stopped"


For the second case, where jails are started / stopped as usual but whole rc.d/jail is backgrounded the only solution I got in my mind is the second rc script (for example bgjail_stop) with similar loop as above executed as one of the last rc scripts on system shutdown.
(but I know it is ugly solution)

I hope somebody will come with better idea :)

Miroslav Lachman


PS: as my english is not so well, it is sometimes hard to me to understand and sometimes hard to explain things
_______________________________________________
freebsd-jail@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-jail
To unsubscribe, send any mail to "freebsd-jail-unsubscr...@freebsd.org"

Reply via email to