ネットワークとntp時間の同期が完了するまでシステムサービスの起動を遅らせる方法は?

ネットワークとntp時間の同期が完了するまでシステムサービスの起動を遅らせる方法は?

私のLinuxホームサーバーからNFS共有を正しくエクスポートできないという問題があります。それはおそらく、例えばネットワークサービスが完全に同期していないときに、NFSサービスが早すぎるからだったでしょう。
私のRaspberry Piでも同様の問題がありました。ハードウェア監視機能を有効にし、起動時に10分ごとに更新されるファイルを監視するように設定しました。
残念ながら、長いシャットダウン後(RTCなし!)パイを起動すると、ネットワークで時間が更新される前にウォッチドッグが起動します。
したがって、ウォッチドッグは、監視対象のファイルを検索する時間差が大きすぎるため、再起動をトリガします。
どちらの場合も、ネットワークが完全に起動して同期されるまで、サービスの開始を遅らせる必要があると思います。
次のヒントを読んだ。https://stackoverflow.com/questions/43001223/how-to-ensure-that-there-is-a-delay-before-a-service-is-started-in-systemdしかし、どちらのサービスも標準的なシステムサービスなので、どのように遅延させるのかわかりません。

答え1

ついにこれを見つけました。https://blog.debiania.in.ua/posts/2020-11-27-howto-delay-a-systemd-service-until-the-clock-is-synchronized.html、私の問題を解決しました。
この問題は2020年にすでに発生していますが、まだ正しく解決されていないようです。
以下の手順に従い、nfsエクスポートが正常に機能し、システム時間が更新された後にのみ監視が開始されます。

  1. dpkg -l | dpkg -l | grep -q "ii *chrony" && apt 削除 chrony
  2. systemctlを有効にする - systemd-timesyncd.service
  3. systemctlを有効にする - systemd-time-wait-sync.service
  4. systemctl edit watchdog.service#次の行を追加
    [単位]
    after=time-sync.target
    want=time-sync.target
  5. systemctl 編集 nfs-server.service#4と同じ行を追加します。

答え2

パイにも同様の問題があります。クロックが適切なタイミングで起動するようにntpdateを最初に実行するようにntp起動スクリプトを修正しました。 (あなたのシステムではすでにこれを行うことができます。)ntpdateは、完了する前に少なくとも1秒以内の正確な時間を維持します。

その後、他のスクリプトにntpとnetwork-onlineに依存するように指示できます。

それはまるで

[Unit]
After=network-online.target ntp.service

関連情報