為什麼 systemd 不設定我的系統時間?

為什麼 systemd 不設定我的系統時間?

我正在運行 Arch Linux。最近,當我開啟電腦時,系統時間設定為 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 時也遇到了類似的問題(顯然沒有實時時鐘),所以要么您使用的是類似的設備,但也沒有(不太可能),或者您的計算機有點舊,RTC 的電池也稱為CMOS電池已經跑平了。

根據您的情況timedatectl status,您已經啟用了 NTP,它應該查詢時間伺服器並為您設定時間。但是,如果您在啟動電腦時設定時間時未連接到互聯網,則這似乎不起作用,如果您使用 WLAN 並且需要很長時間才能連接,則可能會發生這種情況。

最後我的解決方案是為 root ( su -c "crontab -e") 新增 cron 作業,每分鐘執行ntpd -s一次以強制檢查時間,如下所示:

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

問題解決了。

國家發展計畫署ntpd.conf 手冊頁提到了一個minpoll選項,據稱該選項可用於使 ntpd 檢查頻率高達 8 秒。這顯然好了 9000 倍以上,如果這按預期工作,我將更新我的答案。

相關內容