mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-10 01:11:24 +00:00
Ignore trailing /init.scope in init cgroups
The lxc monitor does not store the container's cgroups, rather it recalculates them whenever needed. Systemd moves itself into a /init.scope cgroup for the systemd controller. It might be worth changing that (by storing all cgroup info in the lxc_handler), but for now go the hacky route and chop off any trailing /init.scope. I definately thinkg we want to switch to storing as that will be more bullet-proof, but for now we need a quick backportable fix for systemd 226 guests. Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com> Acked-by: Stéphane Graber <stgraber@ubuntu.com>
This commit is contained in:
parent
27c278a769
commit
f348e47c93
@ -1220,6 +1220,7 @@ static char *lxc_cgroup_get_hierarchy_path_data(const char *subsystem, struct cg
|
||||
info = find_info_for_subsystem(info, subsystem);
|
||||
if (!info)
|
||||
return NULL;
|
||||
prune_init_scope(info->cgroup_path);
|
||||
return info->cgroup_path;
|
||||
}
|
||||
|
||||
|
@ -776,6 +776,7 @@ static char *try_get_abs_cgroup(const char *name, const char *lxcpath,
|
||||
nerr = nih_error_get();
|
||||
nih_free(nerr);
|
||||
}
|
||||
prune_init_scope(cgroup);
|
||||
return cgroup;
|
||||
}
|
||||
|
||||
|
@ -194,3 +194,17 @@ cgroup_driver_t cgroup_driver(void)
|
||||
{
|
||||
return ops->driver;
|
||||
}
|
||||
|
||||
#define INIT_SCOPE "/init.scope"
|
||||
void prune_init_scope(char *cg)
|
||||
{
|
||||
char *point = cg + strlen(cg) - strlen(INIT_SCOPE);
|
||||
if (point < cg)
|
||||
return;
|
||||
if (strcmp(point, INIT_SCOPE) == 0) {
|
||||
if (point == cg)
|
||||
*(point+1) = '\0';
|
||||
else
|
||||
*point = '\0';
|
||||
}
|
||||
}
|
||||
|
@ -80,4 +80,6 @@ extern bool cgroup_unfreeze(struct lxc_handler *handler);
|
||||
extern void cgroup_disconnect(void);
|
||||
extern cgroup_driver_t cgroup_driver(void);
|
||||
|
||||
extern void prune_init_scope(char *cg);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user