systemd がシステム時間を設定しないのはなぜですか?

systemd がシステム時間を設定しないのはなぜですか?

私は Arch Linux を実行しています。最近、PC の電源を入れると、システム時刻が 1970 年 1 月 1 日の 1:00 に設定されます。おそらく、1:00 はタイムゾーンの変更によるものと思われます。

systemdシステム時間が正しく設定されない理由について、何か考えをお持ちの方はいらっしゃいますか?

役に立つ出力がいくつかあります(と思います)...

[root@alex-desktop network.d]# timedatectl status
      Local time: Sun 2013-06-09 16:33:04 BST
  Universal time: Sun 2013-06-09 15:33:04 UTC
        RTC time: Sun 2013-06-09 15:18:50
        Timezone: Europe/London (BST, +0100)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2013-03-31 00:59:59 GMT
                  Sun 2013-03-31 02:00:00 BST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2013-10-27 01:59:59 BST
                  Sun 2013-10-27 01:00:00 GMT

答え1

私はRaspberry Pi(これはどうやらありませんRTCC の)、つまり、同様のデバイスを使用していて、RTCが搭載されていないか(可能性は低い)、またはコンピュータが少し古く、RTCのバッテリー、つまりCMOSバッテリー平らになりました。

あなたの情報によると、timedatectl statusNTP はすでに有効になっているので、タイム サーバーに問い合わせて時刻を設定するはずです。ただし、コンピューターの起動時に時刻を設定するときにインターネットに接続していないと、この機能は機能しないようです。これは、WLAN を使用していて接続に時間がかかる場合に発生する可能性があります。

最終的に、私の解決策は、次のように、root () の cron ジョブを追加して 1 分ごとにsu -c "crontab -e"実行し、強制的に時間をチェックすることでした。ntpd -s

# sync network time every minute (this is sad)
* * * * *               ntpd -s

問題が解決しました。

ntpdはntpd.conf マニュアルページminpollntpd が 8 秒間隔でチェックするように使用できるオプションについて言及しています。これは明らかに 9000 倍以上優れているため、期待どおりに機能する場合は回答を更新します。

関連情報