我希望能夠在層次結構中建立一個一次性臨時群組。例如:
#!/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 並將其刪除。