当我们发出“ 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
)。