ワンタイム cgroup の作成

ワンタイム cgroup の作成

階層内に 1 回限りの一時グループを作成できるようにしたいと思います。例:

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

これにより、グループが作成されます/sys/fs/cgroup/group/subgroup/5G7ds/(5G7ds は 1 回限りの名前で、ID などになる場合があります)。

グループを自動的に削除したいのですが、簡単な方法がわからず、TERM シグナル (actidental からC-c) が呼び出される傾向があります。

それを実行する方法はありますか? Gentoo+systemd を使用しています。

答え1

を介してコマンドを実行できますsystemd-run --scope。これにより、コマンド用の一時的な cgroup が作成されます。その後、必要に応じて cgroup を変更できます。 を使用して、systemd-cglsの下の cgroup 階層でプロセスを見つけます/sys/fs/cgroup

によるsystemd-run マニュアルページ

systemd-run は、一時的な .service または一時的な .timer または .scope ユニットを作成して起動し、その中で指定された COMMAND を実行するために使用できます。

systemd-runフラグを使用してコマンド経由でユニットの制限を指定することもできます--property(複数回指定できます)。使用可能なプロパティについては、sytemd.resource-control マニュアルページ

後でプロパティを設定する場合は、 を使用できますsystemd set-property

--unit=yourname簡単にアクセスできるように、フラグとともにユニットに名前を付けることをお勧めします。

非常に良い文章があります新しいコントロールグループインターフェースを強くお勧めします。また、Red Hat Enterprise Linux 7 リソース管理および Linux コンテナ ガイドsystemd で cgroups を使用する方法について非常に明確な説明を提供します。

答え2

グループに特定の有効期間を指定する必要があるかもしれません。たとえば、コンピュータの起動後に有効にして、シャットダウン後に削除したい場合があります。そのため、/etc/rcスクリプトに有効期間を追加するのは悪い考えではありません。

答え3

正しく理解できているか分かりませんが、次のようにすればいいのではないでしょうか。

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

上記は cgroup をアンマウントして削除します。

関連情報