[Lxc-users] How to make a container init DIE after finishing runlevel 0

Michael H. Warfield mhw at WittsEnd.com
Mon Jan 25 21:18:07 UTC 2010

On Mon, 2010-01-25 at 21:50 +0100, Daniel Lezcano wrote:

> > apologies for the length, but how is everyone else handling this?
> > this is the last thing i need to solve before i actually start running
> > all my services on this setup.
> >   
> I was wondering if the kernel shouldn't send a signal to the init's 
> parent when sys_reboot is called.

Which still leaves open the question of telling the difference between a
halt and a reboot.  My trick of using the final runlevel
in /var/run/utmp ran a foul over a gotcha in the Debian containers that
they seem to default to mounting tmpfs over /var/run and /var/lock so
you loose that information.  I had to disable "RAMRUN" and "RAMLOCK"
in /etc/default/rcS in the debian images to get around that but I'm not
sure I'm happy doing that.  The alternative examining /var/log/wtmp
didn't work out as reliable.  OpenVZ has a similar problem and it writes
a "reboot" file that can be read but that seems inelegant as well.  I
don't think anything works if someone does a "reboot -f" but I need to
test that condition yet.

To also answer the OP's question.  Here's what I use.  I have a script
that runs periodically in the host.  If the number of processes in a
running container is 1, then I check for the runlevel in
${rootfs}/var/run/utmp.  If that's "? 0" then it's a halt and I run
lxc-stop.  If it's "? 6" then it's a reboot and I stop the container and
then restart it.  I run it every 5 minutes or so or manually.  It runs
fast and could be run more often.  Just sucks polling things like that,
though.  That script, lxc-check, is attached.

Michael H. Warfield (AI4NB) | (770) 985-6132 |  mhw at WittsEnd.com
   /\/\|=mhw=|\/\/          | (678) 463-0932 |  http://www.wittsend.com/mhw/
   NIC whois: MHW9          | An optimist believes we live in the best of all
 PGP Key: 0x674627FF        | possible worlds.  A pessimist is sure of it!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lxc-check
Type: application/x-shellscript
Size: 2628 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20100125/4316ede6/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 482 bytes
Desc: This is a digitally signed message part
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20100125/4316ede6/attachment.pgp>

More information about the lxc-users mailing list