【问题标题】:How systemd sets the initial date on the system?systemd 如何在系统上设置初始日期?
【发布时间】:2021-12-29 20:14:35
【问题描述】:

systemd 如何设置初始系统日期?

我有一个将 systemd 配置为服务管理器的嵌入式系统。最初,系统未连接 WiFi,RTC 未初始化。

当我启动系统时,我看到:

~# timedatectl 
                      Local time: Tue 2020-07-14 19:19:34 UTC
                  Universal time: Tue 2020-07-14 19:19:34 UTC
                        RTC time: Thu 1970-01-01 02:06:42
                       Time zone: n/a (UTC, +0000)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

systemd 在哪里使用Tue 2020-07-14 19:19:34 UTC?系统中没有以前的日志日志,也没有/var/lib/private/systemd/timesync/clock

可以请人澄清一下吗?谢谢!

【问题讨论】:

  • Tue 2020-07-14 19:19:34 UTC 是指使用的时区或它如何计算小时本身?
  • @IdoHLevi 不是时区。年、月、日和时间,当 NTP 尚不可用时,它最初如何计算它们。

标签: systemd


【解决方案1】:

Lennart Poettering 在 systemd-devel@lists.freedesktop.org 中回答了我的问题:

它可以通过构建时的“time-epoch”介子变量进行配置 时间。如果您未指定,则使用 SOURCE_DATE_EPOCH 环境变量 (由可重现的构建人员定义)。如果没有设置,那么 这是你的 git 历史上最新的 git 标签的日期 结帐,如果源不是通过 git 而是作为 tarball 来的, 这是 NEWS 文件的时间戳。

或者换句话说:它通常是包的构建时间,或者 systemd 发布完成的时间。

【讨论】:

    【解决方案2】:

    RTC 是实际 bios 认为的时间,如果它从未被设置 - 无论是手动还是使用 NTP - 它都是工厂设置的,在你的情况下它似乎是 0(unix 时间开始从 1970 年 1 月 1 日起)

    【讨论】:

      猜你喜欢
      • 2011-03-17
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2016-12-25
      • 2017-08-22
      • 1970-01-01
      • 2022-01-21
      相关资源
      最近更新 更多