私は、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
。ただし、すべてのサービスが再試行するわけではなく、最初の失敗の後は停止したままになります。
Wants
1つの解決策は、After
各サービスにカスタムパラメータを追加することですsystemctl
。つまり、
systemctl edit httpd
そして追加する
[Unit]
Wants=network-online.target
After=network-online.target
これは機能し、サービスはネットワークがオンラインになるまで待機し、再起動時に正常にバインドされて起動します。
さて、私の質問です。
追加する各サービスを手動で編集するのは、network-online.target
メンテナンスの手間がかかるうえ、将来インストールされる新しいサービスでこの手順を忘れてしまう可能性もあるため、避けたいです。必要なのは、/ が付いたすべてのサービスがWants
をAfter
待機network.target
しているかのように動作するように、ポリシーを設定したり、システム全体に変更を加えたりする方法ですnetwork-online.target
。
NetworkManager
も待機するので、これは問題を引き起こしますかnetwork.target
?NetworkManager
何か他のものを待機するように変更できますか?network.target
すべて待機すると中断される可能性のある他のサービスはありますかnetwork-online.target
?- 他に創造的な解決策はありますか?