首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >系统从哪里获得构建时间才能提前?

系统从哪里获得构建时间才能提前?
EN

Unix & Linux用户
提问于 2021-09-21 18:43:43
回答 1查看 939关注 0票数 1

启动时,系统给了我

在构建时间之前的系统时间,提前时钟

如果硬件时钟比构建时间更早的话。

但是它从哪里得到这个构建时间呢?它把时间提前到9/9/2020

但是uname -v给了我2021年2月15日

/etc/timestamp包含21/7/2021年。

那么,系统从哪里获得这些构建时间呢?

EN

回答 1

Unix & Linux用户

发布于 2021-09-21 19:37:46

时间戳可能来自systemd守护进程的构建时间,而不是内核的构建时间(uname)。我不知道/etc/时间戳是从哪里来的。

在查看系统码之后,我认为构建时间是在编译系统d二进制文件时设置的,如果存在的话,则是从文件/usr/lib/clock划时代设置的。

这是错误消息:

代码语言:javascript
运行
复制
$ ag 'System time before build time'

src/core/main.c
1602:                log_info("System time before build time, advancing clock.");

该错误消息的条件取决于函数的输出.

代码语言:javascript
运行
复制
$ ag clock_apply_epoch

src/shared/clock-util.c
142:int clock_apply_epoch(ClockChangeDirection *ret_attempted_change) {

...which将统计硬编码路径或使用编译时定义的常量。

代码语言:javascript
运行
复制
$ 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");

这里定义了常数:

代码语言:javascript
运行
复制
$ ag TIME_EPOCH
meson.build
724:conf.set('TIME_EPOCH', time_epoch)
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/670013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档