如何在linux中设置时间:
1 秒定义为 10 秒(10 秒 = 1 秒自己的时间)
我想愚弄那里运行的所有进程,以使用快 10 倍的时间。所以sleep(1)
将持续 0.1 秒。
如何实现?
答案1
warp
您可以使用以下命令以任意更快的时钟频率运行命令(包括 shell 及其所有子命令)ast-开放包裹。它使用 LD_PRELOAD,因此不能与 setuid 或 setgid 或(现在相对罕见)静态链接程序一起使用。来自扭曲手册页:
warp [ 选项 ] 日期 [ 命令 [ arg ... ] ]
经通过拦截与时间相关的系统调用并修改所看到的时间,在不同的时间范围内执行动态链接的命令命令使用公式:
时间' = 时间 + 扭曲 + (时间 - 基准) * (系数 - 1)
在哪里经是现在的日期,根据默认为日期,并且因素默认为 1。
选项
-b, --base=日期
将基准日期或开始日期设置为日期。对于重复一组测试很有用。默认值为日期。
-f, --factor=因子
将扭曲时钟设置为滴答声因素秒/实秒。默认值为 1。
经执行命令带有可选参数,或者嘘如果命令被省略。所有进程执行者命令在同一时间范围内扭曲。时间进展为命令及其子代的速率为因素倍系统时钟。由以下人员创建的任何文件命令或者它的孩子会出现比日期到命令及其子项,但实际上将处于非扭曲命令的正常时间范围内。