Root以外のユーザーとして cgroups を作成して使用するにはどうすればよいですか?
たとえば、完全に非rootユーザーとして私はできますか?
?
私は最初に here と尋ねましたが、完全な回答が得られませんでした。私も stackoverflowで尋ねた ですが、質問はトピック外としてクローズされました。
通常のユーザーとしてそれを行うことはできません。しかし、cgroupをrootとしてセットアップし、ユーザーが構成できるようにすることができます。
まだデフォルトのcgroupsコントローラーをマウントしていない場合は、 systemd:
$ Sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$ Sudo mkdir /sys/fs/cgroup/cpuset
$ Sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset
Cgroupを作成します。
$ Sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$ Sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}
これで、cgroupの構成を通常のユーザーとして変更できます。
$ echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus
そのグループにプロセスを追加します。
$ ./my_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks
または、サブグループを作成します。
$ mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$ echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$ ./my_other_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks
Ubuntuを使用している場合、あなた(ルートユーザー)はcgroup-liteをインストールし、/ etc/cgconfig.confに必要なものを追加できます。これには、cgroupの構成を変更できるユーザーも含まれます。起動時に実行されます。
あなた(rootユーザー)がブート中に実行する独自のスクリプトを追加できない場合。
[〜#〜] lwn [〜#〜] に関する一連の記事がcgroupsにあります。 part 1 を参照するか、検索をご覧ください。 Systemd には、cgroupを管理する(ケージ化されたプロセス)ヘルパーのセットが含まれています。