summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-04-13 17:54:33 +0200
committerLennart Poettering <lennart@poettering.net>2012-04-13 18:52:53 +0200
commit74afee9c18fe74035387e4e17ca60c6b51ee9af3 (patch)
tree405ec396425e4e0fa90c2143d83085d0e1b96a04
parent41807efb1594ae8e71e0255e154ea7d17be2251a (diff)
logind: explicitly check for /dev/tty0
-rw-r--r--src/login/logind.c14
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;
}