Wie kann man erreichen, dass sich die Startabhängigkeiten des system.d-Dienstes für network.target wie network-online.target verhalten?

Wie kann man erreichen, dass sich die Startabhängigkeiten des system.d-Dienstes für network.target wie network-online.target verhalten?

Ich verwende eine Minimalinstallation von CentOS8 (8.1.1911) zum Betrieb eines Webservers.

Einige Dienste /etc/systemd/system/multi-user.target.wants/wie

  • httpd.service

  • mariadb.service

  • named.service

  • squid.service

  • sshd.service

  • postfix.service

nur haben After=network.targetund nicht network-online.target.

Dies ist ein Problem, da diese Dienste beim Systemstart gestartet werden, bevor das Netzwerk bereit ist, und sich nicht an die Abhörports binden lassen. Glücklicherweise sshdversuchen einige Dienste die Bindung immer wieder und sobald das Netzwerk online ist, gelingt dies. Sie können fehlgeschlagene Bindungsversuche sehen, /var/log/messagesbevor sie schließlich erfolgreich sind. Allerdings werden nicht alle Dienste einen erneuten Versuch unternehmen und bleiben nach dem ersten Fehlschlag tot.

Ich weiß, dass eine Lösung darin besteht, benutzerdefinierte Parameter für Wants/ Afterauf jedem Dienst hinzuzufügen systemctl, d. h. auszuführen

systemctl edit httpd

und füge hinzu

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

Dies funktioniert. Die Dienste warten jetzt, bis das Netzwerk online ist und werden beim Neustart erfolgreich gebunden und gestartet.

Nun zu meiner Frage.

Ich möchte nicht jeden hinzuzufügenden Dienst manuell bearbeiten, network-online.targetda dies zu Wartungsproblemen führt und die Möglichkeit besteht, dass dieser Schritt bei zukünftigen neuen Diensten vergessen wird. Ich möchte eine Möglichkeit, eine Richtlinie festzulegen oder eine systemweite Änderung vorzunehmen, sodass sich jeder Dienst mit einem Wants/ Afterfür network.targetso verhält, als ob er auf wartet network-online.target.

  • Wird dies ein Problem verursachen, da NetworkManagerauch auf gewartet wird network.target? Könnte NetworkManagergeändert werden, um auf etwas anderes zu warten?
  • Gibt es noch andere Dienste, die möglicherweise nicht mehr funktionieren, wenn alle network.targetdarauf warten network-online.target?
  • Irgendwelche anderen kreativen Lösungen?

verwandte Informationen