X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcgls.c;h=2bde743acf314420c9c9c2c3375facd452a172e2;hp=93617ddc2fa6b77ad0df97c2bea4e57b1da416b1;hb=2b583ce6576d4a074ce6f1570b3e60b65c64ae7d;hpb=22f4096ca96acd504ac74e7dfad96f07edb6da51 diff --git a/src/cgls.c b/src/cgls.c index 93617ddc2..2bde743ac 100644 --- a/src/cgls.c +++ b/src/cgls.c @@ -106,8 +106,22 @@ int main(int argc, char *argv[]) { if (path_startswith(p, "/sys/fs/cgroup")) { printf("Working Directory %s:\n", p); r = show_cgroup_by_path(p, NULL, 0); - } else - r = show_cgroup(SYSTEMD_CGROUP_CONTROLLER, "/", NULL, 0); + } else { + char *root = NULL; + const char *t = NULL; + + if ((r = cg_get_by_pid(SYSTEMD_CGROUP_CONTROLLER, 1, &root)) < 0) + t = "/"; + else { + if (endswith(root, "/system")) + root[strlen(root)-7] = 0; + + t = root[0] ? root : "/"; + } + + r = show_cgroup(SYSTEMD_CGROUP_CONTROLLER, t, NULL, 0); + free(root); + } free(p); }