in validators/cgroup_validator_linux.go [113:136]
func (c *CgroupsValidator) getCgroupV1Subsystems() ([]string, error) {
// Get the subsystems from /proc/cgroups when cgroup v1 is used.
f, err := os.Open("/proc/cgroups")
if err != nil {
return nil, err
}
defer f.Close()
subsystems := []string{}
s := bufio.NewScanner(f)
for s.Scan() {
if err := s.Err(); err != nil {
return nil, err
}
text := s.Text()
if text[0] != '#' {
parts := strings.Fields(text)
if len(parts) >= 4 && parts[3] != "0" {
subsystems = append(subsystems, parts[0])
}
}
}
return subsystems, nil
}