Por que meu arquivo de unidade de serviço é um arquivo, mas outros são um diretório?

0

Eu criei uma unidade de serviço para executar o apache-httpd e ele está funcionando, mas estou preocupado que o arquivo de configuração da unidade de serviço seja um arquivo, mas os outros itens no diretório (/ etc / systemd / system) são todos diretórios, então meu arquivo parece uma anomalia:

Funciona,masporqueminhadefiniçãoédiferentedasoutras?

Euuseias instruções em "Tech Guides" para criar o serviço unidade .

    
por Tyler Durden 15.11.2018 / 11:16

2 respostas

1

Os outros diretórios que você mostra são .wants e .d - eles não contêm todo o arquivo de serviço (que viverá em /lib/systemd/system para serviços instalados através de pacotes), mas apenas modificações.

Por exemplo, se você executar systemctl edit (servicename).service para fazer alterações, talvez queira definir variáveis de ambiente adicionais, você receberá automaticamente um /etc/systemd/system/servicename.d/override.conf que contém suas alterações.

A intenção disso é ter uma separação clara das alterações locais feitas pelo admin em /etc/ e as definições de serviço gerenciado por pacote em /lib/systemd/system que podem receber alterações com atualizações de pacotes.

    
por 15.11.2018 / 12:05
1

As unidades são ambos arquivos e diretórios. As informações completas sobre uma unidade são distribuídas e lidas de ambos.

Os arquivos obrigatórios terminam em .service , .target , .socket , .timer , .mount e assim por diante.

Os diretórios opcionais terminam em .service.d , .service.requires , .target.wants e assim por diante. Os que terminam em .d contêm arquivos regulares. Os que terminam em .wants e .requires contêm links simbólicos. Para detalhes, leia o manual systemd.unit .

No seu caso, o arquivo e o diretório (atualmente inexistente) estão abaixo de /etc/systemd . Você, o administrador local, é a fonte de ambos. No caso das outras unidades, o arquivo está em outro lugar, como /usr/lib/systemd , e os diretórios estão em /etc/systemd . Isso reflete o fato de que a parte do arquivo é fornecida por um pacote de software e as partes do diretório foram criadas como os resultados das escolhas e modificações do administrador local (como modificar a configuração Wants de uma unidade para habilitar outra unidade) .

O modelo do systemd é aquele em /usr/lib/systemd e /usr/local/lib/systemd é fornecido pelo pacote, coisas em /run/systemd são criadas dinamicamente enquanto o sistema está rodando, e coisas sob /etc/systemd são determinadas pelo administrador do sistema local . Os arquivos, diretórios e links simbólicos comuns em todas as quatro áreas (que podem envolver mais do que apenas um único subdiretório system , novamente para detalhes do manual) são sintetizados na informação completa da unidade, com regras sobre o que tem precedência. sobre o que.

    
por 15.11.2018 / 13:28