Red Hat Training
A Red Hat training course is available for RHEL 8
9.5. Usando grupos de controle versão 1 com systemd
As seções seguintes fornecem uma visão geral das tarefas relacionadas à criação, modificação e remoção dos grupos de controle (cgroups
). As utilidades fornecidas pelo sistema systemd
e pelo gerente de serviços são a forma preferida da gerência cgroups
e serão suportadas no futuro.
9.5.1. Criação de grupos de controle versão 1 com systemd
Você pode usar o sistema systemd
e o gerente de serviços para criar grupos de controle transientes e persistentes (cgroups
) para estabelecer limites, priorizar ou controlar o acesso aos recursos de hardware para grupos de processos.
9.5.1.1. Criação de grupos de controle transientes
A cgroups
estabelece limites para os recursos consumidos por uma unidade (serviço ou escopo) durante seu tempo de execução.
Procedimento
Para criar um grupo de controle transitório, use o comando
systemd-run
no seguinte formato:# systemd-run --unit=<name> --slice=<name>.slice <command>
Este comando cria e inicia um serviço transitório ou uma unidade de escopo e executa um comando personalizado em tal unidade.
-
A opção
--unit=<name>
dá um nome à unidade. Se--unit
não for especificado, o nome é gerado automaticamente. -
O
--slice=<name>.slice
faz de sua unidade de serviço ou escopo um membro de uma fatia especificada. Substitua<name>.slice
com o nome de uma fatia existente (como mostrado na saída desystemctl -t slice
), ou criar uma nova fatia passando um nome único. Por padrão, os serviços e escopos são criados como membros dosystem.slice
. Substitua
<command>
com o comando que você deseja executar no serviço ou na unidade de escopo.A seguinte mensagem é exibida para confirmar que você criou e iniciou o serviço ou o escopo com sucesso:
# Funcionando como unidade <name>.service
-
A opção
Opcionalmente, manter a unidade funcionando após a conclusão de seus processos para coletar informações sobre o tempo de execução:
# systemd-run --unit=<name> --slice=<name>.slice --remain-after-exit <command>
O comando cria e inicia uma unidade de serviço transitória e executa um comando personalizado em tal unidade. A opção
--remain-after-exit
garante que o serviço continue funcionando após a conclusão de seus processos.
Recursos adicionais
- Para mais informações sobre o conceito de grupos de controle, veja Seção 9.1, “Entendendo os grupos de controle”.
-
Para mais informações sobre o papel do
systemd
nos grupos de controle, veja Seção 9.4, “Papel do sistemad em grupos de controle versão 1”. -
Para mais informações sobre
systemd
, arquivos de configuração de unidades e suas localizações, e uma lista completa desystemd
tipos de unidades, veja as seções relevantes em Configuring basic system settings. -
Para uma descrição detalhada de
systemd-run
, incluindo outras opções e exemplos, consulte as páginas do manualsystemd-run(1)
.
9.5.1.2. Criação de grupos de controle persistentes
Para atribuir um grupo de controle persistente a um serviço, é necessário editar seu arquivo de configuração de unidade. A configuração é preservada após o reinício do sistema, para que possa ser usada para gerenciar serviços que são iniciados automaticamente.
Procedimento
Para criar um grupo de controle persistente, execute:
# systemctl enable <name>.service
O comando acima cria automaticamente um arquivo de configuração de unidade no diretório
/usr/lib/systemd/system/
e por padrão, ele atribui<name>.service
para a unidadesystem.slice
.
Recursos adicionais
- Para mais informações sobre o conceito de grupos de controle, veja Seção 9.1, “Entendendo os grupos de controle”.
-
Para mais informações sobre o papel do
systemd
nos grupos de controle, veja Seção 9.4, “Papel do sistemad em grupos de controle versão 1”. -
Para mais informações sobre
systemd
, arquivos de configuração de unidades e suas localizações, e uma lista completa desystemd
tipos de unidades, veja as seções relevantes em Configuring basic system settings. -
Para uma descrição detalhada de
systemd-run
, incluindo outras opções e exemplos, consulte as páginas do manualsystemd-run(1)
.