cgroup用户空间的管理是通过cgroup文件系统实现的。
比如要创建一个层级:mount -t cgroup -o cpu,cpuset,memory cpu_and_mem /cgroup/cpu_and_mem
这个命令就创建一个名为cpu_and_mem的层级,这个层级上附加了cpu,cpuset,memory三个子系统,并把层级挂载到了/cgroup/cpu_and_mem
创建一个cgroup:
cd /cgroup/cpu_and_mem
mkdir foo
通过以上两个命令,我们就再刚才创建的层级下创建了一个叫foo的cgroup
你再cd foo,然后ls,你会发现一些文件,这是cgroup相关子系统的控制文件,你可以读取这些控制文件,这些控制文件存储的值就是对相应的cgroup的控制信息,你也可以写控制文件来更改控制信息。
在这些文件中,有一个叫tasks的文件,里面包含了所有属于这个cgroup的进程的进程号
在刚才创建的foo下,你cat tasks,应该是空的,因为此时这个cgroup里面还没有进程
你cd /cgroup/cpu_and_mem再cat tasks,你可以看到系统中所有进程的进程号,这是因为每创建一个层级的时候,系统的所有进程都会自动被加到该层