Localização para colocar o serviço systemd EnvironmentFile ao criar o pacote debian

0

No momento, estou reescrevendo upstart jobs para usar systemd e queria saber:

onde está o local "padrão" para um EnvironmentFile ?

Ele poderia entrar em /etc/environment

Pode ser com todos os outros arquivos de serviço em /etc/systemd/service , /run/systemd/system ou /lib/systemd/system , mas não vejo nenhum outro EnvironmentFile s nesses locais para nenhum outro Service .

Eu também debati /etc/default/ ou /etc/<PACKAGE_NAME>

Não há nenhum lugar "convencional" documentado para colocá-lo. Muitos dos exemplos que vi parecem usar /tmp/<FILE_NAME> , o que não faz sentido, pois /tmp é apagado na reinicialização, e esses arquivos precisam persistir para que possam ser referenciados sempre que o Service for iniciado ou reiniciado.

Antecedentes: Estou gerando o EnvironmentFile no tempo de pré-instalação (com scripts do mantenedor) antes de o pacote debian ser instalado, e sei que o arquivo deve estar disponível toda vez que o serviço for iniciado / reiniciado.

    
por Wimateeka 19.01.2018 / 21:46

1 resposta

0

Alguém mais respondeu a esta pergunta aqui no Unix & amp; Site do Linux Stack Exchange .

(trecho abaixo)

O pessoal do systemd não gosta de arquivos de ambiente.

Então não há um.

Várias pessoas do sistema estão registradas, ao longo dos anos, dizendo que os arquivos de ambiente são um mecanismo que eles nunca deveriam ter dado ao systemd em primeiro lugar.

O mecanismo systemd nativo é, afinal, o próprio arquivo da unidade de serviço, em que as variáveis de ambiente são configuradas com Environment= keys. Personalizar o ambiente de um serviço com variáveis definidas pelo administrador ou específicas da máquina é, na visão deles, uma questão de soltar os arquivos snippet .conf para unidades, que definem outras variáveis de ambiente com mais Environment= keys.

(Mas honestamente, não há sentido em tentar converter dinamicamente material em um arquivo que seja adequado para EnvironmentFile= . [...] Também /etc/sysconfig é um Redhatism que deve realmente desaparecer , todo o conceito é falho. Adicionando um novo /run/sysconfig/ certamente torna isso ainda pior.)

% bl0ck_qu0te% - Lennart Poettering (2015-12-09). Consulta sobre "EnvironmentFile" . systemd-devel.

% bl0ck_qu0te% - Lennart Poettering (2015-07-22). considere ter variáveis para um arquivo de unidade inteiro . bug systemd # 618. GitHub.

Conteúdo de bônus

No mundo daemontools, nós temos diretórios de ambiente , é claro, leia com o comando envdir / s6-envdir . Embora não seja um padrão nem um requisito dos daemontools, uma convenção que pode ser usada, alinhada com algumas ferramentas, é que o diretório do ambiente é denominado env e reside no diretório de serviço ao lado o programa run e outras coisas.

    
por Wimateeka 24.01.2018 / 16:14