Dan*_*ark 4 virtualbox sync time ubuntu
我只需要临时设置日期。我运行这个
date 051918002010.00
Run Code Online (Sandbox Code Playgroud)
它只坚持 5 秒左右。然后它与时间服务器同步。我试过了:
ps aux | grep ntp
Run Code Online (Sandbox Code Playgroud)
但那里什么都没有。
我现在需要一个正确的答案,而不仅仅是一个更详细的答案:)
编辑:正如回答者很快发现的那样,我的 Ubuntu 在 VirtualBox 中运行,结果证明它与某些版本的答案相关。感谢大家。
听起来您真的在寻找一种运行程序的方法,以便程序认为它在不同的日期和时间下运行。
之前有人问过这个问题:Linux RunAsDate 模拟? 下面是我在那里给出的答案。请注意,您似乎正在尝试选项 3。
该ntpdate包不是一个守护进程,应该不会被自动更新你的系统时间(它应该运行一次,在系统启动并没有更多)。我对 VirtualBox 不太熟悉,但我猜你要么已经ntpd安装,要么 VirtualBox Guest Additions 直接从主机操作系统同步时间,在这种情况下,你需要禁用它们,或使用其中之一下面在选项 2 中提到的包装器库。
更新:它看起来像 VirtualBox Guest Additions 安装/usr/sbin/vboxadd-timesync——我猜这是将来宾时钟与主机时钟同步的可执行文件。检查它是否安装了启动脚本(可能/etc/init.d/vboxadd-timesync);如果是这样,您可以停止同步sudo /etc/init.d/vboxadd-timesync stop。如果没有启动脚本,你大概就可以只kill进程。
什么RunAsDate所做的是以下情况:
RunAsDate 拦截返回当前日期和时间(GetSystemTime、GetLocalTime、GetSystemTimeAsFileTime)的内核 API 调用,并将当前日期/时间替换为您指定的日期/时间。
在 Linux 下,你有一些选择来完成同样的事情:
找到一个包装库来做到这一点,或者自己编写。下面给出了一些选项。
使用虚拟机。这有点矫枉过正,但由于来宾 VM 中的操作系统与底层主机完全分离,因此您可以将其系统时间设置为完全不同的时间。设置可能比其他选项更快。
选项 2 可以通过不同的方法完成,具体取决于您尝试运行的内容。下面 DaveParillo 的回答链接到DIY 方法,该方法解释了不同的方法并包括可执行文件的代码。其他一些选项包括:
datefudge,可在 Debian/Ubuntu 存储库和其他地方使用。
Time-Fake perl 模块,也在 Debian 存储库中作为 package libtime-fake-perl。
FakeTime预紧图书馆(又名libfaketime,freshmeat上的链接),图书馆,在动态链接的二进制文件可以拦截系统调用。在 Squeeze 和 Sid 的 Debian 存储库中可用。
由于您对 Dan McG 的评论回复似乎表明您正在将 Ubuntu 作为 VirtualBox 来宾运行,如果您安装了 VirtualBox 来宾添加项,那么它们将自动将来宾的时间与主机的时间同步。
ps -ef | grep VBoxService
Run Code Online (Sandbox Code Playgroud)
应该显示 VirtualBox 来宾添加服务正在运行。
然后你可以尝试:
sudo /etc/init.d/vboxadd-service stop
Run Code Online (Sandbox Code Playgroud)
停止它直到重新启动。
| 归档时间: |
|
| 查看次数: |
5970 次 |
| 最近记录: |