Como configurar opções para um arquivo de unidade do systemd?

1

O blog do systemd contém dois artigos que aconselham contra o uso de / etc / sysconfig ou / etc / default:

Quais alternativas existem para configurar opções específicas do sistema para um arquivo de unidade do systemd?

Opções que considerei:

  • crie uma unidade de modelo e use um especificador

A desvantagem é que você precisa especificar a opção toda vez que o serviço for iniciado. Isso é útil principalmente para executar várias cópias de um único serviço, portanto, não é realmente aplicável.

  • substitui o Execstart do arquivo de unidade localmente por um diretório unitd.d

A desvantagem aqui é que isso requer a substituição de todo o Execstart . Não pode ser usado para simplesmente especificar uma única opção.

    
por Bram 23.02.2016 / 18:46

1 resposta

3

Depende um pouco de qual opção você está tentando configurar. Se for um local de pasta (como o diretório inicial, o diretório de tempo de execução, etc.), o systemd fornece isso por meio de variáveis.

Caso contrário, você pode usar um arquivo de ambiente para especificar as opções e, em seguida, fazer com que a unidade de serviço inclua as variáveis nesses arquivos. Por exemplo, o arquivo de serviço conteria o seguinte (além dos parâmetros usuais):

[Service]
Environment=ENV_OPTION_1=0 ENV_OPTION_2=linux
EnvironmentFile=/etc/default/program-name
ExecStart=/usr/bin/program $ENV_OPTION_1 ${ENV_OPTION_2}

EnvironmentFile aponta para um arquivo simples que contém pares de valores-chave, assim:

ENV_OPTION_1=8913
ENV_OPTION_2=ubuntu

Environment são opções padrão que você pode querer ter.

Os valores do ambiente são usados em ExecStart , conforme mostrado acima. Observe que, se o valor puder ser separado por espaço, você precisará usar a sintaxe ${} .

    
por 23.02.2016 / 19:56

Tags