diff options
author | Lennart Poettering <lennart@poettering.net> | 2012-04-13 17:54:33 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2012-04-13 18:52:53 +0200 |
commit | 74afee9c18fe74035387e4e17ca60c6b51ee9af3 (patch) | |
tree | 405ec396425e4e0fa90c2143d83085d0e1b96a04 | |
parent | 41807efb1594ae8e71e0255e154ea7d17be2251a (diff) |
logind: explicitly check for /dev/tty0
-rw-r--r-- | src/login/logind.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/login/logind.c b/src/login/logind.c index 67117405e6..fc08c4bc69 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; } |