[Lxc-users] Best way to shutdown a container
Daniel Lezcano
daniel.lezcano at free.fr
Fri Aug 13 15:09:57 UTC 2010
On 08/13/2010 04:30 PM, Clemens Perz wrote:
> On 08/13/2010 03:55 PM, Clemens Perz wrote:
>
>> Hi!
>>
>> I used to run lxc-stop on my system containers when I actually want to
>> run a halt. Only today I noticed, that stop actually kills all
>> processes, not really doing a halt. I went through the lxc commands and
>> did not find something graceful to do this job from the host systems
>> shutdown scripts.
>>
>> Did I miss it? Maybe lxc-halt is a missing piece ;-) Is there a simple
>> way to do it, preventing the need to login to the container and run halt?
>>
>>
> I read the stuff on the list about powerfail, creating deamons and
> stuff. Seems that it might not be generic enough. What about this:
>
> lxc-start opens @/var/lib/container/command and keeps it open until the
> container dies. As far as I know, lxc-info already communicates over
> this socket. So, could we send a message to the init process of the
> container, just like telinit does?
>
> strace telinit 2 on my system shows this bit:
>
> open("/dev/initctl", O_WRONLY) = 3
> write(3,
> "i\31\t\3\1\0\0\0002\0\0\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384)
> = 384
>
> So at the end, its just writing some information into the initctrl
> device of the container. Hmm, dunno if this works for upstart.
>
> Sorry for telling any rubbish here - just thinking ;-))
>
For the sysv init, a simple chroot <rootfs> /sbin/halt works.
But for upstart, that shutdowns your host :/
The problem is upstart uses an af_unix socket which is unreachable from
outside (different namespaces).
More information about the lxc-users
mailing list