Posso editar com segurança o arquivo unitário Nginx Systemd (/lib/systemd/system/nginx.service) fornecido pelo pacote nginx?

0

Instalei o Nginx com apt install nginx em um host Debian 9.2. Ele funciona bem, mas olhando no diário do Systemd com journalctl -u nginx , eu recebo o hilário:

Started A high performance web server and a reverse proxy server.

Acontece que o Systemd reutiliza o campo "Descrição" na seção "[Unidade]" do arquivo da unidade e, com certeza, /lib/systemd/system/nginx.service diz:

Description=A high performance web server and a reverse proxy server

Isso é uma piada dos mantenedores do Debian Nginx ou de outra pessoa? Mesmo a documentação do Systemd no link diz:

Bad examples are "high-performance light-weight HTTP server" (too generic)

Então, estou pensando em editar o campo "Descrição" para dar a ele um valor descritivo mais ehm, mas não tenho certeza de como isso funcionará quando atualizar o pacote nginx como parte da atualização ou atualização do sistema. Eu serei avisado de um conflito se outra versão do nginx.service for tentada instalada? Eu sei que este é o caso com os arquivos de configuração do pacote, isso também se aplica a outros tipos de arquivos do pacote?

    
por amn 10.11.2017 / 22:51

1 resposta

1

Como regra geral, qualquer coisa em /usr ou /lib deve ser considerada somente leitura e especialmente qualquer coisa que tenha sido instalada por um pacote. (Existem raras e infelizes exceções.) A menos que um arquivo tenha sido marcado de forma especial no pacote, as atualizações simplesmente sobrescreverão.

A maneira recomendada de alterar vários arquivos systemd é copiá-los para /etc . Por exemplo, o arquivo de unidade /etc/systemd/system/nginx.service substituirá o arquivo em / usr / lib. (Ele até mesmo substituirá as unidades de serviço init.d geradas automaticamente.) Use a ferramenta systemd-delta para ver os diffs de todas as unidades sobrescritas.

Bem, eu digo "recomendado" porque ele também funciona com coisas como regras do udev e tal ... Mas um método ainda melhor é substituir apenas partes de uma unidade usando arquivos "drop-in" /etc/systemd/system/nginx.service.d/foobar.conf - somente isto precisa de duas linhas, o nome da seção [Unit] e sua nova configuração Description= ; o resto será herdado de / usr / lib.

Em ambos os casos, você pode usar systemctl edit [--full] para abrir um editor e fazer as alterações.

Finalmente, a opção genérica do Debian é dizer ao sistema de empacotamento (dpkg) para evitar a atualização de um arquivo específico, não importando onde ele esteja localizado. Você pode "desviar" o arquivo real em outro lugar usando dpkg-divert . Outras distros têm características semelhantes, por ex. O pacman do Arch usa NoExtract= e NoUpgrade= .

    
por 10.11.2017 / 23:19