chiark / gitweb /
update TODO
[elogind.git] / src / cgroup.c
index 8b2ad5b0e9704715afcbca784055ee45e979e365..57c9c9e99e54fdaad02c44b7b819b6391a76ca1e 100644 (file)
@@ -230,8 +230,12 @@ int manager_setup_cgroup(Manager *m) {
         if ((r = cg_get_by_pid(SYSTEMD_CGROUP_CONTROLLER, 0, &current)) < 0)
                 goto finish;
 
-        snprintf(suffix, sizeof(suffix), "/systemd-%lu", (unsigned long) getpid());
-        char_array_0(suffix);
+        if (m->running_as == MANAGER_SYSTEM)
+                strcpy(suffix, "/system");
+        else {
+                snprintf(suffix, sizeof(suffix), "/systemd-%lu", (unsigned long) getpid());
+                char_array_0(suffix);
+        }
 
         free(m->cgroup_hierarchy);
         if (endswith(current, suffix)) {
@@ -255,7 +259,7 @@ int manager_setup_cgroup(Manager *m) {
         log_debug("Using cgroup controller " SYSTEMD_CGROUP_CONTROLLER ". File system hierarchy is at %s.", path);
 
         /* 3. Install agent */
-        if ((r = cg_install_release_agent(SYSTEMD_CGROUP_CONTROLLER, CGROUP_AGENT_PATH)) < 0)
+        if ((r = cg_install_release_agent(SYSTEMD_CGROUP_CONTROLLER, SYSTEMD_CGROUP_AGENT_PATH)) < 0)
                 log_warning("Failed to install release agent, ignoring: %s", strerror(-r));
         else if (r > 0)
                 log_debug("Installed release agent.");