我想让 Linux 上的系统时钟变慢或变快。
在 Windows 上,有一个方便的免费软件,名为“时间旅行“。要了解它的作用,只需检查此图像,一切都是不言自明的:
因此,将速度设置为 0.9,使 PC 上的实际一分钟仅为 54 秒,只需单击一下即可轻松将系统时间再次同步到实时时间。
我喜欢某种适用于 Linux 的软件或工具,它也可以完成此操作或非常接近它的操作。有谁知道什么吗?
谢谢。
PS:Windows 软件的图片和链接只是为了说明 Windows 存在一些真正简单的 GUI 解决方案,我想在 Linux 系统上接近它。
答案1
调整时间是校准Linux系统时钟的工具(对CPU频率没有影响),它可以让系统时钟变慢或变快,但只是小调整。
简短描述man 8 adjtimex
:
-t val, --tick val
Set the number of microseconds that should be added to the
system time for each kernel tick interrupt.
-f newfreq, --frequency newfreq
Set the system clock frequency offset to newfreq. newfreq can
be negative or positive, and gives a much finer adjustment
than the --tick switch.
-s adj, --singleshot adj
Slew the system clock by adj usec.
-o adj, --offset adj
Add a time offset of adj usec.
如果你想让时钟走得更快,你可以使用脚本定期设置系统时钟,如下所示:
#!/usr/bin/env python3
import time
clk_id = time.CLOCK_REALTIME
def run(cycle, speed):
while True:
t = time.clock_gettime(clk_id)
time.clock_settime(clk_id, t + speed * cycle)
time.sleep(cycle)
if __name__ == '__main__':
run(0.01,24) # set time every 0.01 second, 24 times faster than normal
当你想让它慢一点时要小心。你应该保持时间平稳,你可以让时间更慢地增加或停止,但你不应该把它设置得早于它到达的时间。也就是说,你无法回到过去。
因此,不要使用脚本来强制时钟变慢。