summaryrefslogtreecommitdiff
path: root/src/login/logind.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/logind.c')
-rw-r--r--src/login/logind.c10
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);