struct lxc_handler *handler;
int status = 0;
int pipes[2] = {-1, -1};
+ struct cgroup_ops *cgroup_ops;
/* Try to detach from the current controlling tty if it exists.
* Otherwise, lxc_init (via lxc_console) will attach the container's
if (lxc_init(c->name, handler) < 0)
goto out;
+ cgroup_ops = handler->cgroup_ops;
- if (!handler->cgroup_ops->payload_create(handler->cgroup_ops, handler)) {
- ERROR("failed creating groups");
+ if (!cgroup_ops->monitor_create(cgroup_ops, handler)) {
+ ERROR("Failed to create monitor cgroup");
+ goto out_fini_handler;
+ }
+
+ if (!cgroup_ops->monitor_enter(cgroup_ops, handler)) {
+ ERROR("Failed to enter monitor cgroup");
+ goto out_fini_handler;
+ }
+
+ if (!cgroup_ops->monitor_delegate_controllers(cgroup_ops)) {
+ ERROR("Failed to delegate controllers to monitor cgroup");
+ goto out_fini_handler;
+ }
+
+ if (!cgroup_ops->payload_create(cgroup_ops, handler)) {
+ ERROR("Failed creating cgroups");
goto out_fini_handler;
}