为什么systemctl status显示未来的时间和剩余时间?

为什么systemctl status显示未来的时间和剩余时间?

当我们发出“ systemctl status”时,我们通常会在输出中得到一行显示状态以及处于该状态的时间。

就像:(我几分钟前发布的)

Active: active (running) since Wed 2023-11-22 01:56:06 CST; 10h ago

但是,当系统时间为 01:19:27 CST 时,同一服务碰巧收到以下行

Active: active (running) since Wed 2023-11-22 **01:56:06** CST; 36min **left**

为什么“since”后面的时间是将来时?为什么它显示“剩余”时间?离开是为了什么?

我期望看到过去的时间并看到 x 时间单位前

我试图发出“ systemctl list-timers --all”来查明是否有与该服务相关的计时器,但我发现没有相关的。

答案1

你可能已经击中这个 Systemd 错误当您的 RTC 设置为当地时间时会发生这种情况(timedatectl将确认这一点)。

升级 Systemd 或将 RTC 设置为 UTC:

# timedatectl set-local-rtc 0

后者是优选的。引用手册timedatectl:

请注意,不完全支持在本地时区维护 RTC,并且会在时区更改和夏令时调整方面产生各种问题。如果可能,请将 RTC 保持在 UTC 模式。

这里的“夏令时调整问题”是指如果您的机器在夏令时更改期间关闭(不久前发生),那么从 RTC 读取的时间“将不会针对该更改进行调整”(引自手册hwclock)。

相关内容