建立一次性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 並將其刪除。

相關內容