UPDATE: I can't reproduce the problem anymore. The below code works fine in both cases. (I am not sure if I should remove the question then.)
I use cgropus GO package v2, and I can't create a cgroup with some parameters set to non-default values. I run CentOS-9.
The following GO code works fine:
package main
import (
"fmt"
cgroupsv2 "github.com/containerd/cgroups/v2"
)
func main() {
res := cgroupsv2.Resources{}
//quota := int64(200000)
//period := uint64(1000000)
//max := cgroupsv2.NewCPUMax("a, &period)
//cpu := cgroupsv2.CPU{Max: max}
//res = cgroupsv2.Resources{CPU: &cpu}
cgroupManager, err := cgroupsv2.NewManager("/sys/fs/cgroup/", "/mytestgroup", &res)
if err != nil {
fmt.Printf("Error creating cgroup: %v\n", err)
return
} else {
fmt.Println("The group created successfully")
}
cgroupManager.Delete()
}
$ go build -o test
$ sudo ./test
The group created successfully
However, if I uncomment commented-out lines, I get a permission error.
$ go build -o test
$ sudo ./test
Error creating cgroup: open /sys/fs/cgroup/mytestgroup/cpu.max: permission denied
Here is SELinux status, in case that matters
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
Thank you for your help.
I am using this code and it runs just fine
In the event that the code does not execute as expected, kindly verify if the
/sys/fs/cgroupdirectory has the necessary read-write (rw) permissions. You can check the current mount options for the/sys/fs/cgroupfilesystem by executing the following command:If the
/sys/fs/cgroupfilesystem is mounted as read-only, you can remount it with read-write permissions using the following command:then try running your program again.