3.5.5. Modificação de arquivos de unidades existentes


Os serviços instalados no sistema vêm com arquivos de unidade padrão que são armazenados no diretório /usr/lib/systemd/system/. Os administradores do sistema não devem modificar estes arquivos diretamente, portanto qualquer personalização deve ser confinada aos arquivos de configuração no diretório /etc/systemd/system/.

Procedimento

  1. Dependendo da extensão das mudanças necessárias, escolha uma das seguintes abordagens:

    • Crie um diretório para arquivos de configuração suplementares em /etc/systemd/system/unit.d/. Este método é recomendado para a maioria dos casos de uso. Ele permite estender a configuração padrão com funcionalidade adicional, enquanto ainda se refere ao arquivo original da unidade. As mudanças na unidade padrão introduzidas com uma atualização de pacote são, portanto, aplicadas automaticamente. Veja Estendendo a configuração padrão da unidade para maiores informações.
    • Criar uma cópia do arquivo original da unidade /usr/lib/systemd/system/ em /etc/systemd/system/ e fazer alterações lá. A cópia substitui o arquivo original, portanto as alterações introduzidas com a atualização do pacote não são aplicadas. Este método é útil para fazer mudanças significativas na unidade que devem persistir independentemente das atualizações do pacote. Consulte Substituição da configuração padrão da unidade para obter detalhes.
  2. Para retornar à configuração padrão da unidade, exclua os arquivos de configuração criados sob medida em /etc/systemd/system/.
  3. Para aplicar mudanças nos arquivos da unidade sem reiniciar o sistema, execute:

    systemctl daemon-reload
    Copy to Clipboard Toggle word wrap

    A opção daemon-reload recarrega todos os arquivos unitários e recria toda a árvore de dependência, que é necessária para aplicar imediatamente qualquer mudança em um arquivo unitário. Como alternativa, é possível obter o mesmo resultado com o seguinte comando, que deve ser executado sob o usuário root:

    init q
    Copy to Clipboard Toggle word wrap
  4. Se o arquivo da unidade modificada pertence a um serviço em execução, este serviço deve ser reiniciado para aceitar novas configurações:

    systemctl restart name.service
    Copy to Clipboard Toggle word wrap
Importante

Para modificar propriedades, tais como dependências ou timeouts, de um serviço que é tratado por um initscript SysV, não modifique o initscript em si. Em vez disso, crie um arquivo de configuração drop-in systemd para o serviço, conforme descrito em Estendendo a configuração padrão da unidade e Substituindo a configuração padrão da unidade. Em seguida, gerencie este serviço da mesma forma que um serviço normal systemd.

Por exemplo, para estender a configuração do serviço network, não modifique o arquivo initscript /etc/rc.d/init.d/network. Em vez disso, crie um novo diretório /etc/systemd/system/network.service.d/ e um arquivo drop-in systemd /etc/systemd/system/network.service.d/my_config.conf. Em seguida, coloque os valores modificados no arquivo drop-in. Nota: systemd conhece o serviço network como network.service, e é por isso que o diretório criado deve ser chamado network.service.d

3.5.5.1. Estendendo a configuração padrão da unidade

Esta seção descreve como estender o arquivo de unidade padrão com opções adicionais de configuração.

Procedimento

  1. Para estender o arquivo de unidade padrão com opções adicionais de configuração, primeiro crie um diretório de configuração em /etc/systemd/system/. Se estiver ampliando uma unidade de serviço, execute o seguinte comando como root:

    mkdir /etc/systemd/system/name.service.d/
    Copy to Clipboard Toggle word wrap

    Substitua name pelo nome do serviço que você deseja estender. A sintaxe acima se aplica a todos os tipos de unidade.

  2. Criar um arquivo de configuração no diretório feito na etapa anterior. Note que o nome do arquivo deve terminar com o sufixo .conf. Digite:

    touch /etc/systemd/system/nome.serviço.d/config_name.conf
    Copy to Clipboard Toggle word wrap

    Substituir config_name pelo nome do arquivo de configuração. Este arquivo adere à estrutura normal do arquivo de unidade, portanto, todas as diretrizes devem ser especificadas nas seções apropriadas, ver Estrutura do arquivo de unidade.

    Por exemplo, para adicionar uma dependência personalizada, crie um arquivo de configuração com o seguinte conteúdo:

    [Unit]
    Requires=new_dependency
    After=new_dependency
    Copy to Clipboard Toggle word wrap

    Onde new_dependency significa que a unidade deve ser marcada como uma dependência. Outro exemplo é um arquivo de configuração que reinicia o serviço após a saída de seu processo principal, com um atraso de 30 segundos:

    [Service]
    Restart=always
    RestartSec=30
    Copy to Clipboard Toggle word wrap

    É recomendado criar pequenos arquivos de configuração focados apenas em uma tarefa. Tais arquivos podem ser facilmente movidos ou ligados a diretórios de configuração de outros serviços.

  3. Para aplicar as mudanças feitas na unidade, execute como root:

    systemctl daemon-reload
    systemctl restart name.service
    Copy to Clipboard Toggle word wrap

Exemplo 3.10. Estendendo a configuração do httpd.service

Para modificar a unidade de serviço httpd.service para que um script de shell personalizado seja executado automaticamente ao iniciar o serviço Apache, execute os seguintes passos.

  1. Criar um diretório e um arquivo de configuração personalizado:

    # mkdir /etc/systemd/systemd/httpd.service.d/
    Copy to Clipboard Toggle word wrap
    # touch /etc/systemd/system/httpd.service.d/custom_script.conf
    Copy to Clipboard Toggle word wrap
  2. Desde que o script que você queira iniciar automaticamente com o Apache esteja localizado em /usr/local/bin/custom.sh, insira o seguinte texto no arquivo custom_script.conf:

    [Service]
    ExecStartPost=/usr/local/bin/custom.sh
    Copy to Clipboard Toggle word wrap
  3. Para aplicar as mudanças de unidade, execute:

    # systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
    # systemctl restart httpd.service
    Copy to Clipboard Toggle word wrap
Nota

Os arquivos de configuração dos diretórios de configuração em /etc/systemd/system/ têm precedência sobre os arquivos de unidade em /usr/lib/systemd/system/. Portanto, se os arquivos de configuração contêm uma opção que pode ser especificada apenas uma vez, como Description ou ExecStart, o valor padrão desta opção é anulado. Observe que na saída do comando systemd-delta, descrito em Monitoramento de unidades sobrescritas, tais unidades são sempre marcadas como [EXTENDIDAS], mesmo que, em suma, certas opções sejam de fato sobrescritas.

Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat