在Unix系统上,是否可以伪造子进程的已知日期和时间?
即,想象一下:
$ date
Fri Jun 28 10:50:35 CEST 2019
$ with_date 10/05/2019 date
Fri May 10 10:50:36 CEST 2019
Run Code Online (Sandbox Code Playgroud)
如何执行with_date命令?
典型的用例是测试与日期/时间相关的软件,模拟各种情况。
有库libfaketime。它使用库预加载机制来拦截要运行的程序的系统调用。一个用例(来自手册)是:
user @ host>日期
2016年11月23 日星期二12:01:05user @ host> LD_PRELOAD = / usr / local / lib / libfaketime.so.1 FAKETIME =“-15d”日期
2016年11月8 日星期一12:08user @ host> LD_PRELOAD = / usr / local / lib / libfaketime.so.1 FAKETIME =“-15d” FAKETIME_DONT_FAKE_MONOTONIC = 1 java -version
Java版本“ 1.8.0_111”
Java(TM)SE运行时环境(内部版本1.8.0_111- b14)Java HotSpot(TM)64位服务器VM(内部版本25.111-b14,混合模式)