X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=unit.c;fp=unit.c;h=872abf3e13d6920a2a84cce92a354f91b1f034df;hb=4f2d528d3bb25cebf8d3ebe83d8193ab4016cb90;hp=7f147537e30e418da1c2dc50e4fc1248f2d1af51;hpb=9e2f7c11fb6ba35ffec2274da3e2d08b10d23965;p=elogind.git diff --git a/unit.c b/unit.c index 7f147537e..872abf3e1 100644 --- a/unit.c +++ b/unit.c @@ -1339,13 +1339,22 @@ int unit_add_cgroup(Unit *u, CGroupBonding *b) { static char *default_cgroup_path(Unit *u) { char *p; + int r; assert(u); - if (asprintf(&p, "%s/%s", u->meta.manager->cgroup_hierarchy, u->meta.id) < 0) - return NULL; + if (u->meta.instance) { + char *t; - return p; + if (!(t = unit_name_template(u->meta.id))) + return NULL; + + r = asprintf(&p, "%s/%s/%s", u->meta.manager->cgroup_hierarchy, t, u->meta.instance); + free(t); + } else + r = asprintf(&p, "%s/%s", u->meta.manager->cgroup_hierarchy, u->meta.id); + + return r < 0 ? NULL : p; } int unit_add_cgroup_from_text(Unit *u, const char *name) {