I’ve been playing around more with Linux Containers after my post about init scripts and I start to think they are quite near being working for Gentoo. I hope once I come back from my vacations to get them in the tree together with Tiziano.
Right now the problems we have are:
- the standard stage3 needs to be heavily tweaked or it’ll be a massacre when started;
- if I do set ttys in the configuration, at start time it moves me to the real tty1, which causes a domino effect with X11 that is annoying, although not critical;
- OpenRC needs to be tweaked to add support for Linux-Containers; there are quite a few things that could be eased up by having a working OpenRC that ignores some init scripts when running in containers; the code seems to be in
src/librc/librc.c
(look for openvz) and should be easy to check whether we’re running on containers, by checking the running cgroup (/proc/self/cgroup
); - the current ebuild in Tiziano’s overlay creates a
/var/lib/lib
directory and installs thelxc-
binaries in /usr/bin, both of which shouldn’t happen in Gentoo once installed; - running
rc shutdown
inside the container will stop all the services properly, but will not kill init and thus not kill the vserver, I’m not sure why; runningkill 1
also seems not to work, I have yet to check whether sending the kill signal from outside will properly shut down the rc inside, if yes, then it’ll be a good way to shut down the container.
Once I’ll be back and I’ll be working on the init scripts, they’ll be in a separate package, kinda like mysql’s, since what I have for now is slightly more complex, will add a few more standard locations (for instance they’ll use a /var/log/lxc
directory that is not part of the standard install of lxc) and will require a couple of packages that are not part of lxc.