我是使用 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.procsandtasks文件只包含父进程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