)
// Return the current process's cgroup for the given subsystem.
+//
+// If the host has cgroups v2 and not v1 (i.e., unified mode), return
+// the current process's cgroup.
func findCgroup(subsystem string) (string, error) {
subsys := []byte(subsystem)
cgroups, err := ioutil.ReadFile("/proc/self/cgroup")
if len(toks) < 3 {
continue
}
+ if len(toks[1]) == 0 && string(toks[0]) == "0" {
+ // cgroups v2: "0::$PATH"
+ return string(toks[2]), nil
+ }
for _, s := range bytes.Split(toks[1], []byte(",")) {
if bytes.Compare(s, subsys) == 0 {
return string(toks[2]), nil