no Network Time Protocol(NTP)デーモンが実行されていると仮定して、システムクロックをハードウェアクロック(別名RTC、またはCMOSクロック))と同期するスクリプトを作成しています。 。
私は仮想マシンで実行していますが、スーパーバイザーはゲストがハードウェアクロックを変更することを許可していません。
したがって、Linuxでは、hwclock --hctosys
を使用してこれを行うことができます。たとえば、Debianでは次のようになります。
$ date
Thu May 18 00:48:57 UTC 2017
$ date 0401121621
Thu Apr 1 12:16:00 UTC 2021
$ hwclock --hctosys # this set my system clock to the hardware clock back again
$ date
Thu May 18 00:49:28 UTC 2017
しかし、hwclockユーティリティを提供していないので、FreeBSDで同じことをどのように行うことができますか? adjkerntz -a
を使用してみましたが、機能しませんでした。 FreeBSDバージョン11.0-RELEASE-p9を実行しています
ご協力いただきありがとうございます
_sysctl machdep.disable_rtc_set
_を確認してください。 _0
_である必要があり、ハードウェアクロックは settimeofday()
が呼び出されるたびに自動的に設定されます。次に、 ntpd
が実行されている場合、ntpd
がすでにこのシステムコールを呼び出しているため、別のコマンドでハードウェアクロックを設定する必要はありません。
一般的なアドバイスについては、回答1(下記?)を参照してください。
Ntpdがクロックを設定することを確認するには、-gスイッチを使用して実行する必要があります。または、「ntpd -g -n」を手動で実行する場合。最後のスイッチは、フォークしないことを確認することです。最初は関係なく時間を設定します。メッセージを監視し、^ Cを使用して終了します。動作しない場合は、2つの-gスイッチで使用してみてください。
/etc/rc.confで有効にしてntpをオンにします。ntpdが有効になっている場合は、次のようになります。 ntpd_enable = "YES" ntpd_flags = "-p /var/run/ntpd.pid -f /var/db/ntpd.drift -g -g"
コマンドservicentpdstartを使用してサービスを開始します
openntpdは起動時間を設定するため、-gオプションは必要ないようです。