启动时,系统给了我
在构建时间之前的系统时间,提前时钟
如果硬件时钟比构建时间更早的话。
但是它从哪里得到这个构建时间呢?它把时间提前到9/9/2020
但是uname -v
给了我2021年2月15日
/etc/timestamp
包含21/7/2021年。
那么,系统从哪里获得这些构建时间呢?
发布于 2021-09-21 19:37:46
时间戳可能来自systemd守护进程的构建时间,而不是内核的构建时间(uname)。我不知道/etc/时间戳是从哪里来的。
在查看系统码之后,我认为构建时间是在编译系统d二进制文件时设置的,如果存在的话,则是从文件/usr/lib/clock划时代设置的。
这是错误消息:
$ ag 'System time before build time'
src/core/main.c
1602: log_info("System time before build time, advancing clock.");
该错误消息的条件取决于函数的输出.
$ ag clock_apply_epoch
src/shared/clock-util.c
142:int clock_apply_epoch(ClockChangeDirection *ret_attempted_change) {
...which将统计硬编码路径或使用编译时定义的常量。
$ ag EPOCH_FILE
src/shared/clock-util.c
140:#define EPOCH_FILE "/usr/lib/clock-epoch"
152: if (stat(EPOCH_FILE, &st) < 0) {
154: log_warning_errno(errno, "Cannot stat " EPOCH_FILE ": %m");
这里定义了常数:
$ ag TIME_EPOCH
meson.build
724:conf.set('TIME_EPOCH', time_epoch)
https://unix.stackexchange.com/questions/670013
复制相似问题