Criando cgroup único

Criando cgroup único

Gostaria de poder criar um grupo temporário único na hierarquia. Por exemplo:

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

O que cria um grupo, digamos /sys/fs/cgroup/group/subgroup/5G7ds/(5G7ds é um nome único - pode ser um ID ou qualquer coisa).

Gostaria de excluir o grupo automaticamente, mas não sei como fazê-lo facilmente e tenho tendência a dizer o sinal TERM (de actidental C-c).

Existe uma forma de fazer isso? Estou usando o Gentoo + systemd.

Responder1

Você pode executar seus comandos via systemd-run --scope. Isto cria um cgroup transitório (ou seja, temporário) para o seu comando. Você pode então modificar o cgroup de acordo com suas necessidades. Use systemd-cglspara encontrar seu processo na hierarquia do cgroup em /sys/fs/cgroup.

De acordo compágina de manual do systemd-run

systemd-run pode ser usado para criar e iniciar um .service transitório ou um .timer transitório ou uma unidade .scope e executar o COMMAND especificado nele.

Você também pode especificar restrições para sua unidade através do systemd-runcomando usando o --propertysinalizador (mais de uma vez é permitido). Para propriedades disponíveis você pode verificar com opágina de manual sytemd.resource-control.

Se quiser definir propriedades posteriormente, você pode usar systemd set-property.

Lembre-se de que é uma boa ideia fornecer um nome para sua unidade junto com a --unit=yournamebandeira, para que você possa acessá-la facilmente.

Há um texto muito bom sobrea nova interface do grupo de controle, o que recomendo fortemente. Também oGuia de gerenciamento de recursos e contêineres Linux do Red Hat Enterprise Linux 7fornece uma descrição muito clara de como usar cgroups com systemd.

Responder2

Talvez seja necessário especificar um tempo de vida específico para o seu grupo; você pode querer ativá-lo após a inicialização do computador e excluí-lo após o desligamento. Portanto, não é uma má ideia adicioná-lo aos seus /etc/rcscripts.

Responder3

Não tenho certeza se entendi corretamente, mas você não pode simplesmente:

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

O procedimento acima desmonta o cgroup e o remove.

informação relacionada