diff options
Diffstat (limited to 'src/login/logind.c')
-rw-r--r-- | src/login/logind.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/login/logind.c b/src/login/logind.c index 5320820a5..c5d526b4b 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -154,6 +154,10 @@ static Manager* manager_unref(Manager *m) { sd_event_source_unref(m->udev_button_event_source); sd_event_source_unref(m->lid_switch_ignore_event_source); +#if ENABLE_UTMP + sd_event_source_unref(m->utmp_event_source); +#endif + safe_close(m->console_active_fd); udev_monitor_unref(m->udev_seat_monitor); @@ -1144,6 +1148,9 @@ static int manager_startup(Manager *m) { #if 1 /// elogind needs some extra preparations before connecting... elogind_manager_startup(m); #endif // 1 + /* Connect to utmp */ + manager_connect_utmp(m); + /* Connect to console */ r = manager_connect_console(m); if (r < 0) @@ -1201,6 +1208,9 @@ static int manager_startup(Manager *m) { manager_reserve_vt(m); #endif // 0 + /* Read in utmp if it exists */ + manager_read_utmp(m); + /* And start everything */ HASHMAP_FOREACH(seat, m->seats, i) (void) seat_start(seat); |