Comment puis-je créer et utiliser des cgroups Linux en tant qu'utilisateur non root?
21
Comment puis-je créer et utiliser des groupes de contrôle en tant qu'utilisateur non root?
Par exemple, puis-je, entièrement en tant qu'utilisateur non root:
créer un groupe de contrôle avec accès à un CPU
créer un nouveau processus dans ce groupe de contrôle
?
J'ai d'abord demandé ici, mais je n'ai pas reçu de réponse complète. J'ai également posé des questions sur stackoverflow , mais la question a été fermée hors sujet.
Vous ne pouvez pas faire cela en tant qu'utilisateur normal. Mais vous pouvez configurer un cgroup en tant que root et le rendre configurable par votre utilisateur.
Si vous n'avez pas déjà les contrôleurs par défaut cgroups montés par exemple par 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
comment supprimeriez-vous le sous-groupe? rm -réchoue pour moi
hbogert
1
rm -ressaierait de supprimer les fichiers en premier, ce qui échoue. Utilisez rmdirpour supprimer un groupe de contrôle.
Dennis B.
Vous ne pouvez pas rmdirtant que le tasksfichier n'est pas vide. root aurait besoin de regarder le fichier des tâches dans le sous-groupe, et d'échos chaque pid dans le fichier de tâches du groupe racine ( /dev/cpuset/taskssur ma boîte RHEL 6.7 [noyau 2.6.32-358], mais il semble que cela /sys/fs/cgroup/cpuset/taskspourrait être approprié ici).
Mike S
1
Si vous utilisez Ubuntu, vous (l'utilisateur root) pouvez installer cgroup-lite et ajouter ce dont vous avez besoin à /etc/cgconfig.conf, y compris les utilisateurs qui peuvent modifier la configuration du cgroup. Il fonctionne au démarrage.
À défaut, vous (l'utilisateur root) pourriez ajouter votre propre script à exécuter pendant le démarrage.
Il existe une série d'articles sur LWN sur les groupes de discussion , voir la partie 1 , ou regardez dans la recherche. Systemd comprend un ensemble d'aides pour gérer (les processus mis en cage par) les groupes de contrôle.
rm -r
échoue pour moirm -r
essaierait de supprimer les fichiers en premier, ce qui échoue. Utilisezrmdir
pour supprimer un groupe de contrôle.rmdir
tant que letasks
fichier n'est pas vide. root aurait besoin de regarder le fichier des tâches dans le sous-groupe, et d'échos chaque pid dans le fichier de tâches du groupe racine (/dev/cpuset/tasks
sur ma boîte RHEL 6.7 [noyau 2.6.32-358], mais il semble que cela/sys/fs/cgroup/cpuset/tasks
pourrait être approprié ici).Si vous utilisez Ubuntu, vous (l'utilisateur root) pouvez installer cgroup-lite et ajouter ce dont vous avez besoin à /etc/cgconfig.conf, y compris les utilisateurs qui peuvent modifier la configuration du cgroup. Il fonctionne au démarrage.
À défaut, vous (l'utilisateur root) pourriez ajouter votre propre script à exécuter pendant le démarrage.
la source
Il existe une série d'articles sur LWN sur les groupes de discussion , voir la partie 1 , ou regardez dans la recherche. Systemd comprend un ensemble d'aides pour gérer (les processus mis en cage par) les groupes de contrôle.
la source