X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind.c;h=fc08c4bc69fc42d966761a5eaf5730dee4beed32;hb=74afee9c;hp=67117405e67027f8b7b48677ec2c34de3cfcc585;hpb=41807efb1594ae8e71e0255e154ea7d17be2251a;p=elogind.git 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; }