Criando o cgroup de uso único

3

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 o grupo diz /sys/fs/cgroup/group/subgroup/5G7ds/ (5G7ds é o nome único - pode ser ID ou qualquer coisa).

Eu gostaria de excluir o grupo automaticamente, mas não sei como fazê-lo facilmente e propenso a dizer o sinal TERM (de actidental C-c ).

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

    
por Maciej Piechotka 28.03.2012 / 13:11

3 respostas

2

Você pode precisar especificar uma duração específica para o seu grupo; você pode querer ativá-lo após a inicialização do computador e ser excluído após o desligamento. Portanto, não é uma má ideia adicioná-lo aos seus scripts /etc/rc .

    
por 23.11.2012 / 19:28
2

Você pode executar seus comandos via systemd-run --scope . Isso cria um cgroup transiente (ou seja, temporário) para o seu comando. Você pode então modificar o cgroup para as suas necessidades. Use systemd-cgls para encontrar seu processo na hierarquia do cgroup em /sys/fs/cgroup .

De acordo com a página de manual do systemd-run

systemd-run may be used to create and start a transient .service or a transient .timer or a .scope unit and run the specified COMMAND in it.

Você também pode especificar restrições para sua unidade através do comando systemd-run usando o sinalizador --property (é permitido mais de uma vez). Para as propriedades disponíveis, você pode verificar com o sytemd.resource -control manpage .

Se você quiser definir propriedades mais tarde, poderá usar systemd set-property .

Lembre-se de que é uma boa ideia fornecer um nome para sua unidade com o sinal --unit=yourname , para que você possa acessá-lo com facilidade.

Existe um texto muito bom sobre a nova interface do grupo de controle , que eu recomendo vivamente. Além disso, o Red Hat Enterprise Linux 7 Resource Management e Linux Containers Guide fornece uma descrição muito clara de como usar cgroups wirh systemd.

    
por 12.06.2015 / 23:04
0

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 acima desmonta o cgroup e o remove.

    
por 12.05.2012 / 22:11