Como fazer com que as dependências de inicialização do serviço system.d para network.target se comportem como network-online.target?

Como fazer com que as dependências de inicialização do serviço system.d para network.target se comportem como network-online.target?

Estou operando uma instalação mínima do CentOS8 (8.1.1911) para fins de execução de um servidor web.

Alguns serviços /etc/systemd/system/multi-user.target.wants/como

  • httpd.service

  • mariadb.service

  • named.service

  • squid.service

  • sshd.service

  • postfix.service

tem apenas After=network.targete não network-online.target.

Isso é um problema porque na inicialização do sistema esses serviços são iniciados antes que a rede esteja pronta e não conseguem se conectar a nenhuma porta de escuta. Felizmente, alguns como sshdeles continuam tentando se conectar e, quando a rede está online, eles conseguem. Você pode ver as /var/log/messagestentativas de vinculação que falharam antes de finalmente ter sucesso. No entanto, nem todos os serviços tentarão novamente e após a primeira falha permanecerão mortos.

Eu sei que uma solução é adicionar parâmetros personalizados para Wants/ Afterem cada serviço usando systemctl, ou seja, executar

systemctl edit httpd

e adicione

[Unit]
Wants=network-online.target
After=network-online.target

Isso funciona, os serviços agora aguardarão até que a rede esteja on-line e sejam vinculadas e iniciadas com êxito na reinicialização.

Agora, minha pergunta.

Não quero editar manualmente cada serviço a ser adicionado, network-online.targetpois isso cria uma dor de cabeça na manutenção e a possibilidade de esquecer esta etapa em novos serviços instalados no futuro. O que eu quero é uma maneira de definir uma política ou fazer uma mudança em todo o sistema, para que qualquer serviço com Wants/ Afterfor network.targetse comporte como se estivesse esperando por network-online.target.

  • Isso criará um problema, pois NetworkManagertambém espera network.target? Poderia NetworkManagerser alterado para esperar por outra coisa?
  • Algum outro serviço que possa falhar se todos network.targetesperarem network-online.target?
  • Alguma outra solução criativa?

informação relacionada