创建一次性cgroup

创建一次性cgroup

我希望能够在层次结构中创建一个一次性临时组。例如:

#!/bin/sh
run_with_csubgroup /sys/fs/cgroup/group/subgroup/

哪个创建组说/sys/fs/cgroup/group/subgroup/5G7ds/(5G7ds 是一次性名称 - 它可能是 ID 或任何东西)。

我想自动删除该组,但我不知道如何轻松做到这一点并且容易说 TERM 信号(来自 actidental C-c)。

有办法做到吗?我使用的是Gentoo+systemd。

答案1

您可以通过 运行您的命令systemd-run --scope。这会为您的命令创建一个瞬态(即临时)cgroup。然后您可以根据需要修改 cgroup。用于systemd-cgls在 下的 cgroup 层次结构中查找您的进程/sys/fs/cgroup

根据systemd 运行联机帮助页

systemd-run 可用于创建和启动瞬态 .service 或瞬态 .timer 或 .scope 单元并运行其中指定的命令。

您还可以systemd-run使用该--property标志通过命令指定对您的单位的限制(允许多次)。对于可用的属性,您可以检查sytemd.resource-control 联机帮助页

如果您想稍后设置属性,可以使用systemd set-property.

请记住,最好为您的单位提供带有标志的名称--unit=yourname,以便您可以轻松访问它。

有一篇很好的文字是关于新的控制组界面,我强烈推荐。另外,红帽企业 Linux 7 资源管理和 Linux 容器指南提供了关于如何在 systemd 中使用 cgroup 的非常清晰的描述。

答案2

您可能需要为您的组指定特定的生命周期;您可能希望在计算机启动后打开它并在关闭后将其删除。所以将它添加到您的/etc/rc脚本中并不是一个坏主意。

答案3

不确定我理解是否正确,但你不能:

~] umount /sys/fs/cgroup/group/subgroup/5G7ds/
~] rmdir /sys/fs/cgroup/group/subgroup/5G7ds/

以上卸载 cgroup 并将其删除。

相关内容