Esse problema tem a ver com systemd
usa arquivos.
Conforme documentado em man file-hierarchy
, o diretório /lib
é para arquivos somente leitura fornecidos pelo fornecedor, enquanto /etc
é para "configuração específica do sistema", que pode substituir os arquivos padrão fornecidos pelo fornecedor em /lib
.
O local correto para colocar suas modificações está em /etc/sytemd/system
.
Você pode substituir completamente o arquivo em questão por um arquivo em /etc/
ou usar um modelo "drop-in" para substituir somente parte do arquivo.
Pesquise man systemd.unit
para "Drop-in" para os detalhes.
Os arquivos em /lib
continuarão sendo sobrescritos durante os upgrades de pacotes, enquanto as alterações em /etc/
serão preservadas.
O conselho sobre / lib vs / etc aplica-se geralmente, não apenas a systemd
.
exemplo de unidade drop-in do systemd
Em /etc/systemd/system/docker.service.d/10-fix-execstart.conf
:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -g "/mnt/var/lib/docker" -H fd://
Assim, você está seguindo um padrão para criar um arquivo em um diretório com o nome do serviço que deseja substituir, declarando apenas a seção específica e a diretiva que você deseja substituir.
De man systemd.service
:
If the empty string is assigned to this option, the list of commands to start is reset, prior assignments of this option will have no effect.