2.5. Création de groupes de contrôle
Utilisez la commande
cgcreate
pour créer des groupes de contrôle. La syntaxe pour cgcreate
est : cgcreate -t
uid:gid -a
uid:gid -g subsystems:path
, où :
-t
(optionnel) — spécifie un utilisateur (par un ID utilisateur, ou uid) et un groupe (par ID de groupe, ou GID) pour posséder le pseudofichiertâches
(tasks
) pour ce groupe de contrôle. Cet utilisateur peut ajouter des tâches à ce groupe de contrôle.Note
Remarquez que l'unique manière de supprimer une tâche d'un groupe de contrôle est de la déplacer sur un autre groupe de contrôle. Pour déplacer une tâche, l'utilisateur doit posséder la permission d'écriture sur le groupe de contrôle destinataire ; la permission d'écriture sur le groupe de contrôle source n'est pas importante.-a
(optionnel) — spécifie un utilisateur (par un ID utilisateur, ou uid) et un groupe (par ID de groupe, ou GID) pour posséder tous les pseudofichiers autres quetâches
(tasks
) pour ce groupe de contrôle. Cet utilisateur peut modifier les accès des tâches de ce groupe de contrôle aux ressources système.-g
— spécifie la hiérarchie dans laquelle le groupe de contrôle devrait être créé, en tant que liste séparée par des virgules des sous-systèmes associés à ces hiérarchies. Si les sous-systèmes de cette liste se trouvent dans différentes hiérarchies, le groupe est créé dans chacune d'entre elles. La liste des hiérarchies est suivie par deux-points et le chemin d'accès vers le groupe enfant relatif à la hiérarchie. Ne pas inclure le point de montage de la hiérarchie dans le chemin d'accès.Par exemple, le groupe de contrôle se trouvant dans le répertoire/cgroup/cpu_and_mem/lab1/
est simplement appelélab1
— son chemin d'accès est déjà déterminé de manière unique car il y a, au plus, une seule hiérarchie pour un sous-système donné. Remarquez aussi que le groupe est contrôlé par tous les sous-systèmes qui existent dans les hiérarchies dans lesquelles le groupe de contrôle a été créé, même si ces sous-systèmes n'ont pas été spécifiés dans la commandecgcreate
— reportez-vous à la Exemple 2.5, « Utilisation de cgcreate ».
Comme tous les groupes de contrôle dans la même hiérarchie possèdent les mêmes contrôleurs, le groupe enfant possède les mêmes contrôleurs que son parent.
Exemple 2.5. Utilisation de cgcreate
Prenez en considération un système où les sous-systèmes
cpu
et memory
sont montés ensemble dans la hiérarchie cpu_and_mem
et où le contrôleur net_cls
est monté dans une hiérarchie séparée nommée net
. Nous exécutons mainenant :
~]# cgcreate -g cpu,net_cls:/test-subgroup
La commande
cgcreate
crée deux groupes nommés test-subgroup
, un dans la hiérarchie cpu_and_mem
et un dans la hiérarchie net
. Le groupe test-subgroup
dans la hiérarchie cpu_and_mem
est contrôlé par le sous-système memory
, même si nous ne l'avons pas spécifié dans la commande cgcreate
.
Méthode alternative
Pour créer un enfant du groupe de contrôle, utilisez la commande
mkdir
:
~]# mkdir /cgroup/hierarchy/name/child_name
Par exemple :
~]# mkdir /cgroup/cpuset/lab1/group1