X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Flogin%2Flogind.c;h=333d5f85bdd09c808c310bc7d513a2c3cd864f58;hb=976c088a0242a1a91b8f00899a4c2ae0e621a185;hp=3a1903ca130032d946a02eba337f32d471109016;hpb=addedec48ba0ffc4472ef6d3b5a45c9d4239f1cd;p=elogind.git diff --git a/src/login/logind.c b/src/login/logind.c index 3a1903ca1..333d5f85b 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -955,7 +955,8 @@ static int manager_connect_udev(Manager *m) { ev.events = EPOLLIN; ev.data.u32 = FD_SEAT_UDEV; - if (m->n_autovts <= 0) + /* Don't bother watching VCSA devices, if nobody cares */ + if (m->n_autovts <= 0 || m->console_active_fd < 0) return 0; if (epoll_ctl(m->epoll_fd, EPOLL_CTL_ADD, m->udev_seat_fd, &ev) < 0) @@ -1074,13 +1075,13 @@ int manager_startup(Manager *m) { if (m->epoll_fd < 0) return -errno; - /* Connect to udev */ - r = manager_connect_udev(m); + /* Connect to console */ + r = manager_connect_console(m); if (r < 0) return r; - /* Connect to console */ - r = manager_connect_console(m); + /* Connect to udev */ + r = manager_connect_udev(m); if (r < 0) return r;