Package: util-linux
Version: 2.20.1-1.1
Hi,
lxc guests run getty on /dev/pts/ entries (which are bind mounted onto
/dev/console and /dev/tty{1-4} in the guest). The latest util-linux
makes some changes (in particular commit
3aa6b68f7e19fa3e1c2bba75bee921a98b7b46af) which cause this to fail, due
to three log_errs() which exit on what are non-fatal errors in this
case. The recent upstream commit
1593b134ebf596ae7a2b1e73f2dcc8c4e7febddd "agetty: don't use log_err()
for non-fatal errors" fixes two of these. A third is after a call to
tcsetpgrp. Both patches are appended here. With both patches applied,
getty works for me in lxc.
{{{{{{{{{{{{{{{{{{{{{ patch 1 }}}}}}}}}}}}}}}}}}}}}
commit 1593b134ebf596ae7a2b1e73f2dcc8c4e7febddd
Author: Karel Zak <[email protected]>
Date: Thu Dec 8 11:39:05 2011 +0100
agetty: don't use log_err() for non-fatal errors
The TIOCSCTTY ioctl requires that caller is session leader -- so it
depends on initd (or we have to add setsid() to aggety). It seems that the
traditional way is to setup tty in agetty and session in login(1).
It means that all session related things (TIOCSCTTY, vhangup, ...) in the
command agetty should be optional. (Note that vhangup() is called when
--hangup is explicitly specified on command line, so log_err() makes
sense there.)
Reported-by: Andrew Walrond <[email protected]>
Signed-off-by: Karel Zak <[email protected]>
diff --git a/term-utils/agetty.c b/term-utils/agetty.c
index 079a737..3500a8e 100644
--- a/term-utils/agetty.c
+++ b/term-utils/agetty.c
@@ -925,7 +925,7 @@ static void open_tty(char *tty, struct termios *tp, struct
options *op)
if (((tid = tcgetsid(fd)) < 0) || (pid != tid)) {
if (ioctl(fd, TIOCSCTTY, 1) == -1)
- log_err("/dev/%s: cannot get controlling tty:
%m", tty);
+ log_warn("/dev/%s: cannot get controlling tty:
%m", tty);
}
if (op->flags & F_HANGUP) {
@@ -950,7 +950,7 @@ static void open_tty(char *tty, struct termios *tp, struct
options *op)
log_err(_("/dev/%s: cannot open as standard input:
%m"), tty);
if (((tid = tcgetsid(STDIN_FILENO)) < 0) || (pid != tid)) {
if (ioctl(STDIN_FILENO, TIOCSCTTY, 1) == -1)
- log_err("/dev/%s: cannot get controlling tty:
%m", tty);
+ log_warn("/dev/%s: cannot get controlling tty:
%m", tty);
}
} else {
{{{{{{{{{{{{{{{{{{{{{ patch 2 }}}}}}}}}}}}}}}}}}}}}
Index: util-linux-2.20.1/term-utils/agetty.c
===================================================================
--- util-linux-2.20.1.orig/term-utils/agetty.c 2012-01-10 08:55:42.763054760
+0000
+++ util-linux-2.20.1/term-utils/agetty.c 2012-01-10 08:56:36.755053680
+0000
@@ -949,7 +949,7 @@
}
if (tcsetpgrp(STDIN_FILENO, pid))
- log_err("/dev/%s: cannot set process group: %m", tty);
+ log_warn("/dev/%s: cannot set process group: %m", tty);
/* Get rid of the present outputs. */
close(STDOUT_FILENO);
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]