¿Cómo hacer que las dependencias de inicio del servicio system.d para network.target se comporten como network-online.target?

¿Cómo hacer que las dependencias de inicio del servicio system.d para network.target se comporten como network-online.target?

Estoy operando una instalación mínima de CentOS8 (8.1.1911) con el fin de ejecutar un servidor web.

Algunos servicios /etc/systemd/system/multi-user.target.wants/como

  • httpd.service

  • mariadb.service

  • named.service

  • squid.service

  • sshd.service

  • postfix.service

tener solo After=network.targety no network-online.target.

Esto es un problema porque al iniciar el sistema, estos servicios se inician antes de que la red esté lista y no se conectan a ningún puerto de escucha. Afortunadamente, a una pareja le gusta sshdseguir intentando vincularse y una vez que la red está en línea lo logran. Puede ver /var/log/messageslos intentos fallidos de vinculación antes de tener éxito. Sin embargo, no todos los servicios volverán a intentarlo y después del primer error permanecerán inactivos.

Sé que una solución es agregar parámetros personalizados para Wants/ Afteren cada servicio usando systemctl, es decir, ejecutar

systemctl edit httpd

y añadir

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

Esto funciona, los servicios ahora esperarán a que la red esté en línea y se vincule y comience exitosamente al reiniciar.

Ahora mi pregunta.

No quiero editar manualmente cada servicio para agregar, network-online.targetya que esto crea un dolor de cabeza de mantenimiento y la posibilidad de olvidar este paso en nuevos servicios instalados en el futuro. Lo que quiero es una forma de establecer una política o realizar un cambio en todo el sistema, de modo que cualquier servicio con un Wants/ Afterfor network.targetse comporte como si estuviera esperando network-online.target.

  • ¿Esto creará un problema ya que NetworkManagertambién espera network.target? ¿Se podría NetworkManagercambiar para esperar a otra cosa?
  • ¿Algún otro servicio que podría fallar si todos network.targetesperaran network-online.target?
  • ¿Alguna otra solución creativa?

información relacionada