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: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74afee9c18fe74035387e4e17ca60c6b51ee9af3;p=systemd logind: explicitly check for /dev/tty0 --- diff --git a/src/login/logind.c b/src/login/logind.c index 67117405..fc08c4bc 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; }