diff --git a/pkg/cli/cmds/init_linux.go b/pkg/cli/cmds/init_linux.go index 8a419b736a..6d82fd4fe4 100644 --- a/pkg/cli/cmds/init_linux.go +++ b/pkg/cli/cmds/init_linux.go @@ -7,6 +7,7 @@ import ( "os/signal" "syscall" + "github.com/containerd/containerd/sys" "github.com/erikdubbelboer/gspt" "github.com/pkg/errors" "github.com/rancher/k3s/pkg/version" @@ -20,10 +21,12 @@ func HandleInit() error { return nil } - // The root cgroup has to be empty to enable subtree_control, so evacuate it by placing - // ourselves in the init cgroup. - if err := cgrouputil.EvacuateCgroup2("init"); err != nil { - return errors.Wrap(err, "failed to evacuate root cgroup") + if !sys.RunningInUserNS() { + // The root cgroup has to be empty to enable subtree_control, so evacuate it by placing + // ourselves in the init cgroup. + if err := cgrouputil.EvacuateCgroup2("init"); err != nil { + return errors.Wrap(err, "failed to evacuate root cgroup") + } } pwd, err := os.Getwd()