From 1dcc35973e70aa02beb37fcc9d289053c264eef1 Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Fri, 20 Jan 2017 16:35:48 +0100 Subject: [PATCH] Fix logind startup * src/login/logind.c (manager_connect_bus): - Notice instead of error if we can't subscribe to updates from systemd. Perhaps we should remove this entirely. But leaving it optional means, that a system managed by systemd can use elogind substituting systemd-login. - Warn instead of error if we can't add receiver matches from systemd events. On a system not run by systemd, such events wouldn't occur anyway. --- src/login/logind.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/login/logind.c b/src/login/logind.c index 792a04dc0..755d0be21 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -626,7 +626,7 @@ static int manager_connect_bus(Manager *m) { "path='/org/freedesktop/systemd1'", match_job_removed, m); if (r < 0) - return log_error_errno(r, "Failed to add match for JobRemoved: %m"); + log_warning_errno(r, "Failed to add match for JobRemoved: %m"); r = sd_bus_add_match(m->bus, NULL, @@ -637,7 +637,7 @@ static int manager_connect_bus(Manager *m) { "path='/org/freedesktop/systemd1'", match_unit_removed, m); if (r < 0) - return log_error_errno(r, "Failed to add match for UnitRemoved: %m"); + log_warning_errno(r, "Failed to add match for UnitRemoved: %m"); r = sd_bus_add_match(m->bus, NULL, @@ -647,7 +647,7 @@ static int manager_connect_bus(Manager *m) { "member='PropertiesChanged'", match_properties_changed, m); if (r < 0) - return log_error_errno(r, "Failed to add match for PropertiesChanged: %m"); + log_warning_errno(r, "Failed to add match for PropertiesChanged: %m"); r = sd_bus_add_match(m->bus, NULL, @@ -658,8 +658,8 @@ static int manager_connect_bus(Manager *m) { "path='/org/freedesktop/systemd1'", match_reloading, m); if (r < 0) - return log_error_errno(r, "Failed to add match for Reloading: %m"); -#if 0 + log_warning_errno(r, "Failed to add match for Reloading: %m"); + r = sd_bus_call_method( m->bus, "org.freedesktop.systemd1", @@ -668,11 +668,9 @@ static int manager_connect_bus(Manager *m) { "Subscribe", &error, NULL, NULL); - if (r < 0) { - log_error("Failed to enable subscription: %s", bus_error_message(&error, r)); - return r; - } -#endif // 0 + if (r < 0) + log_notice("Failed to enable subscription: %s", bus_error_message(&error, r)); + r = sd_bus_request_name(m->bus, "org.freedesktop.login1", 0); if (r < 0) return log_error_errno(r, "Failed to register name: %m"); -- 2.30.2