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
.
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.
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
.
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.
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.