Merge pull request #11935 from giuseppe/use-cgroup-controllers
cgroups: use cgroup.controllers to read controllers
This commit is contained in:
commit
97c74f35a1
|
@ -129,8 +129,8 @@ func init() {
|
||||||
func getAvailableControllers(exclude map[string]controllerHandler, cgroup2 bool) ([]controller, error) {
|
func getAvailableControllers(exclude map[string]controllerHandler, cgroup2 bool) ([]controller, error) {
|
||||||
if cgroup2 {
|
if cgroup2 {
|
||||||
controllers := []controller{}
|
controllers := []controller{}
|
||||||
subtreeControl := cgroupRoot + "/cgroup.subtree_control"
|
controllersFile := cgroupRoot + "/cgroup.controllers"
|
||||||
// rootless cgroupv2: check available controllers for current user ,systemd or servicescope will inherit
|
// rootless cgroupv2: check available controllers for current user, systemd or servicescope will inherit
|
||||||
if rootless.IsRootless() {
|
if rootless.IsRootless() {
|
||||||
userSlice, err := getCgroupPathForCurrentProcess()
|
userSlice, err := getCgroupPathForCurrentProcess()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -138,13 +138,13 @@ func getAvailableControllers(exclude map[string]controllerHandler, cgroup2 bool)
|
||||||
}
|
}
|
||||||
//userSlice already contains '/' so not adding here
|
//userSlice already contains '/' so not adding here
|
||||||
basePath := cgroupRoot + userSlice
|
basePath := cgroupRoot + userSlice
|
||||||
subtreeControl = fmt.Sprintf("%s/cgroup.subtree_control", basePath)
|
controllersFile = fmt.Sprintf("%s/cgroup.controllers", basePath)
|
||||||
}
|
}
|
||||||
subtreeControlBytes, err := ioutil.ReadFile(subtreeControl)
|
controllersFileBytes, err := ioutil.ReadFile(controllersFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrapf(err, "failed while reading controllers for cgroup v2 from %q", subtreeControl)
|
return nil, errors.Wrapf(err, "failed while reading controllers for cgroup v2 from %q", controllersFile)
|
||||||
}
|
}
|
||||||
for _, controllerName := range strings.Fields(string(subtreeControlBytes)) {
|
for _, controllerName := range strings.Fields(string(controllersFileBytes)) {
|
||||||
c := controller{
|
c := controller{
|
||||||
name: controllerName,
|
name: controllerName,
|
||||||
symlink: false,
|
symlink: false,
|
||||||
|
|
Loading…
Reference in New Issue