我是使用 cgroup 的新手。我在 CentOS 64 上使用 libcgroup 管理 cgroup。我设法创建了一些 cgroup,例如
[ehsan.haq@datavault ~]$ cgcreate -g blkio:/test
[ehsan.haq@datavault ~]$ cgcreate -g cpu:/test
可以说,我有一个父进程125672
及其子进程33117, 33403, 33404, 33880, 34663
[ehsan.haq@datavault ~]$ pgrep -P 125672
33117
33403
33404
33880
34663
我想要的是移动父进程125672
及其现有子进程33117, 33403, 33404, 33880, 34663
以及?,?,?
cgroupsblkio:/test
和cpu:/test
. 实现这一目标的正确方法是什么?
我努力了
cgclassify -g blkio:/test [--sticky] 125672
cgclassify -g cpu:/test [--sticky] 125672
但是cgroup.procs
andtasks
文件只包含父进程ID。
[ehsan.haq@datavault ~]$ cat /cgroup/blkio/test/cgroup.procs
125672
[ehsan.haq@datavault ~]$ cat /cgroup/blkio/test/tasks
125672
这是否意味着子进程不在父母cgroup中?如果不是那么我应该怎么做。
更新
我发现cgclassify
如果我这样做,而不是使用
echo "{parent PID}" > /cgroup/blkio/test/tasks
那么所有未来的子进程也最终在/cgroup/blkio/test/cgroup.procs