network.targetがnetwork-online.targetのように動作するように、system.dサービスの起動依存関係をどのように取得しますか?

network.targetがnetwork-online.targetのように動作するように、system.dサービスの起動依存関係をどのように取得しますか?

Webサーバーを実行するためにCentOS8(8.1.1911)最小インストールを実行しています。

一部のサービス/etc/systemd/system/multi-user.target.wants/(例:

  • httpd.service

  • mariadb.service

  • named.service

  • squid.service

  • sshd.service

  • postfix.service

ありAfter=network.target、何もありませんnetwork-online.target

これは、システムの起動時にネットワークが準備される前にこれらのサービスが開始され、リッスンポートにバインドできないために問題になります。幸いなことに、カップルはsshd接続を再試行し続けるのが好きで、ネットワークがオンラインになると成功します。最後に、成功する前に失敗した/var/log/messagesバインディングの試みを見ることができます。ただし、すべてのサービスが最初の失敗後に再試行され、中断されたままになるわけではありません。

1つの解決策は、ie runを使用して各サービスにカスタムパラメータを追加することですWantsAftersystemctl

systemctl edit httpd

そして追加してください

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

これは機能し、サービスはネットワークがオンラインになり、再起動時に正常にバインドおよび開始されるのを待ちます。

今私の質問です。

追加したい各サービスを手動で編集したくありません。network-online.targetこれにより、メンテナンスの問題が発生し、将来インストールされる新しいサービスでこの手順を忘れる可能性があるためです。私が望むのは、ポリシーを設定したりシステム全体で変更を加えたりする方法Wantsです。Afternetwork.targetnetwork-online.target

  • NetworkManagerまだ待たなければならないのに問題が発生するのでしょうかnetwork.targetNetworkManager代わりに別のものを待ってもらえますか?
  • network.targetすべて待つと中断される可能性がある他のサービスはありますかnetwork-online.target
  • 他の創造的な解決策はありますか?

ベストアンサー1

おすすめ記事