chiark / gitweb /
logind: make sure to terminate systemd user on logouts
[elogind.git] / src / login / logind.c
index 554409926a120b0b6345c36b4861c874f159d83b..2add2410664102c1391991c71880a781266431b4 100644 (file)
@@ -889,10 +889,11 @@ void manager_gc(Manager *m, bool drop_not_started) {
                 LIST_REMOVE(gc_queue, m->user_gc_queue, user);
                 user->in_gc_queue = false;
 
-                if (!user_check_gc(user, drop_not_started) &&
-                    user_get_state(user) != USER_CLOSING)
+                /* First step: queue stop jobs */
+                if (!user_check_gc(user, drop_not_started))
                         user_stop(user, false);
 
+                /* Second step: finalize user */
                 if (!user_check_gc(user, drop_not_started)) {
                         user_finalize(user);
                         user_free(user);