assert(u);
+ if (u->started)
+ return 0;
+
/* Make XDG_RUNTIME_DIR */
r = user_mkdir_runtime_path(u);
if (r < 0)
dual_timestamp_get(&u->timestamp);
+ u->started = true;
+
user_send_signal(u, true);
return 0;
int r = 0, k;
assert(u);
+ if (!u->started)
+ return 0;
+
LIST_FOREACH(sessions_by_user, s, u->sessions) {
k = session_stop(s);
if (k < 0)
unlink(u->state_file);
user_add_to_gc_queue(u);
+ u->started = false;
+
return r;
}