lxc and consoles and unix98 ptys (and c/r)
dlezcano at fr.ibm.com
Wed Apr 28 07:19:34 PDT 2010
Serge E. Hallyn wrote:
> Hi Daniel,
> I know you've thought the whole console situation through
> a great deal - and I haven't - so plz set me straight as
> liblxc supports 'lxc.pts', which tells it to mount a fresh
> /dev/pts. However, it does this very late in the container
> startup, and does not appear to support either lxc.tty consoles
> or the 'main' console being in that ptsns.
maybe I am misunderstanding but I think you should look at the
'lxc_create_console' and the 'setup_console' functions, that will show
why new pts instance and console / tty are not correlated.
> When I want to checkpoint and restart something which writes
> to a container in a hand-built container, what I generally do
> is start sshd and screen -dm in the container, ssh in,
> screen -r, start my job, detach and logout, then do my
> freeze/checkpoint/restart, and then i can ssh back in and
> screen -r.
> That's obviously less than ideal :) I'd like to be able to
> checkpoint lightweight containers by doing
> lxc-execute -n serge -- myscript
> or maybe
> lxc-start -d -n serge -- myscript
> and have the container init's fd 0-2 be /dev/pts/0 in the
> container's devpts mount.
> For that to work, lxc-execute would have to mount its new
> devpts instance, then open /dev/pts/0, and start up a proxy
> to ferry the console info back and forth. I thought in the
> past you'd talked about that, but I can't recall whether you
> said you wanted to do it, or that you thought it was too
> heavyweight :)
lxc-start which runs system container does that if it is specified in
> Have you had any such thing in mind?
lxc-execute is for running application containers and the *stdio* are
inherited in the container.
I suppose it may be possible to generalize the console, the ttys and the
> The related feature of course woudl be for lxc-start with
> lxc.tty=4 to first mount a new devpts instance, then run
> getty on /dev/pts/[0-4] and let lxc-console attach to
I am a bit lost, what do you want to do ? Do you plan to make tty,
console and stdio using the same mechanism and get rid of the actual
bind mount of <rootfs>/dev/console|tty ?
Can you elaborate a bit and send a draft-patch to illustrate your idea ?
More information about the Containers