我希望能够在层次结构中创建一个一次性临时组。例如:
#!/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-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 并将其删除。