From: Lennart Poettering Date: Fri, 13 Apr 2012 15:54:33 +0000 (+0200) Subject: logind: explicitly check for /dev/tty0 X-Git-Tag: v183~322 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=74afee9c;p=elogind.git logind: explicitly check for /dev/tty0 --- diff --git a/src/login/logind.c b/src/login/logind.c index 67117405e..fc08c4bc6 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -945,14 +945,16 @@ static int manager_connect_console(Manager *m) { assert(m); assert(m->console_active_fd < 0); + /* On certain architectures (S390 and Xen, and containers), + /dev/tty0 does not exist, so don't fail if we can't open + it. */ + if (access("/dev/tty0", F_OK) < 0) { + m->console_active_fd = -1; + return 0; + } + m->console_active_fd = open("/sys/class/tty/tty0/active", O_RDONLY|O_NOCTTY|O_CLOEXEC); if (m->console_active_fd < 0) { - - /* On certain architectures (S390 and Xen), /dev/tty0 - does not exist, so don't fail if we can't open it.*/ - if (errno == ENOENT) - return 0; - log_error("Failed to open /sys/class/tty/tty0/active: %m"); return -errno; }