On Fri, Dec 13, 2013 at 04:06:56PM +0100, Lennart Poettering wrote:
> On Fri, 13.12.13 16:34, Gao feng (gaof...@cn.fujitsu.com) wrote:
> 
> > >> As we know, systemd only forks getty on ttyX when we press ctrl + alt + 
> > >> FX.
> > >> I whould like to let systemd forks server gettys on all of tty deivces 
> > >> by default.
> > >> this is very useful in container environment, since we can't use 
> > >> ctrl+alt+FX
> > >> to trigger getty in container.
> > > 
> > > ...do containers even have such devices?
> > > 
> > 
> > pts device ;)
> 
> This will not work. Unlike VT ttys which exist continously and
> perpetuously on a system ptys only exist when an application allocates
> them, like for example xterm or ssh. However, for them its xterm's or
> ssh's job to spawn a shall as backend.
> 
> > > Anyway, just enable more instances of getty@.service for all devices you 
> > > need, just like getty@tty1.service is started by default.
> > > 
> > > The autostart that you mention is part of logind and all it does is just 
> > > start the same services via systemd, no magic.
> > > 
> > 
> > getty@tty1.service under /etc/systemd/system/getty.target.wants/ is linked 
> > to /usr/lib/systemd/system/getty@.service,
> > so I create getty@tty2.service which links to 
> > /usr/lib/systemd/system/getty@.service too. is this right?
> > 
> > In libvirt lxc, the ttyX actually is pts devices.
> > 
> > [root@localhost getty.target.wants]# ll
> > total 0
> > lrwxrwxrwx 1 root root 38 Dec 13 02:49 getty@tty1.service -> 
> > /usr/lib/systemd/system/getty@.service
> > lrwxrwxrwx 1 root root 38 Dec 13 03:22 getty@tty2.service -> 
> > /usr/lib/systemd/system/getty@.service
> > 
> > seems like in my container, agetty listens on /dev/console, not tty1 or tty2
> > /sbin/agetty --noclear --keep-baud console 115200 38400 9600
> > 
> > it seems getty-generator does the extra job.
> 
> /dev/tty1, /dev/tty2, ... make no sense in containers as there is no
> virtual console. 

For each <console> device that you list in the container configuration
with libvirt, it will allocate a /dev/pts/NNN device, and add a symlink
from /dev/ttyN to the /dev/pts/NNN slave.  What we'd like is for guest
OS to be able to setup  agetty processes on any <console> device libvirt
has configured for the container automatically.

We had discussed this back at Linux Plumbers last year, and at the time
you had suggested that rather than create /dev/ttyN symlinks we should
instead do something like  /dev/containerttyN instead, and set a
'container_tty' variable containing a list of all those device names
so that systemd can discover them sensibly. We never got around to
doing this from the libvirt side, and AFAIK systemd hasn't done anything
on its side either. So is this still a suitable way forward ?

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to