From 6797c324a653f119a3d7133122648aaa4878ddd6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 10 Jul 2013 23:31:40 +0200 Subject: logind: don't misunderstand UnitRemoved signals during reloading When PID 1 reloads the units logind/machined will see UnitRemoved signals for all units. Instead of trusting these immediately, let's check the actual unit state before considering a unit gone, so that reloading PID 1 is not mistaken as the end of all sessions. --- src/machine/machined.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/machine/machined.c') diff --git a/src/machine/machined.c b/src/machine/machined.c index f2803a18c9..c7c4ecc375 100644 --- a/src/machine/machined.c +++ b/src/machine/machined.c @@ -233,6 +233,18 @@ static int manager_connect_bus(Manager *m) { dbus_error_free(&error); } + dbus_bus_add_match(m->bus, + "type='signal'," + "sender='org.freedesktop.systemd1'," + "interface='org.freedesktop.systemd1.Manager'," + "member='Reloading'," + "path='/org/freedesktop/systemd1'", + &error); + if (dbus_error_is_set(&error)) { + log_error("Failed to add match for Reloading: %s", bus_error_message(&error)); + dbus_error_free(&error); + } + r = bus_method_call_with_reply( m->bus, "org.freedesktop.systemd1", -- cgit v1.2.3-54-g00ecf