+ /* Try to clean up, but ignore errors */
+ (void) rmdir(u->runtime_path);
+ return r;
+}
+
+static int user_start_slice(User *u) {
+#if 0 /// elogind can not ask systemd via dbus to start user services
+ _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
+ const char *description;
+ char *job;
+ int r;
+
+ assert(u);
+
+ u->slice_job = mfree(u->slice_job);
+ description = strjoina("User Slice of ", u->name);
+
+ r = manager_start_slice(
+ u->manager,
+ u->slice,
+ description,
+ "systemd-logind.service",
+ "systemd-user-sessions.service",
+ u->manager->user_tasks_max,
+ &error,
+ &job);
+ if (r >= 0)
+ u->slice_job = job;
+ else if (!sd_bus_error_has_name(&error, BUS_ERROR_UNIT_EXISTS))
+ /* we don't fail due to this, let's try to continue */
+ log_error_errno(r, "Failed to start user slice %s, ignoring: %s (%s)",
+ u->slice, bus_error_message(&error, r), error.name);
+#else
+ assert(u);
+
+ hashmap_put(u->manager->user_units, u->slice, u);
+#endif // 0
+
+ return 0;
+}
+
+static int user_start_service(User *u) {
+#if 0 /// elogind can not ask systemd via dbus to start user services
+ _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
+ char *job;
+ int r;
+
+ assert(u);
+
+ u->service_job = mfree(u->service_job);
+
+ r = manager_start_unit(
+ u->manager,
+ u->service,
+ &error,
+ &job);
+ if (r < 0) {
+ /* we don't fail due to this, let's try to continue */
+ log_error_errno(r, "Failed to start user service, ignoring: %s", bus_error_message(&error, r));
+ } else {
+ u->service_job = job;