Parece que você está realmente procurando uma maneira de executar um programa para que o programa ache que ele está sendo executado em uma data e hora diferente.
Uma pergunta anterior foi feita sobre isso: Linux RunAsDate analógico? Abaixo está a resposta que eu dei lá . Observe que você parece estar tentando a opção 3.
O pacote ntpdate
não é daemon e não deve não atualizar a hora do sistema automaticamente (ele deve ser executado uma vez na inicialização e não mais). Eu não estou muito familiarizado com o VirtualBox, mas eu acho que você tem ntpd
instalado ou o VirtualBox Guest Additions está sincronizando o tempo diretamente do sistema operacional host, caso em que você precisa desativá-los, ou use uma das bibliotecas de invólucro mencionadas abaixo na Opção 2.
Atualização : Parece que as adições aos Convidados do VirtualBox instalam /usr/sbin/vboxadd-timesync
- Eu acho que esse é o executável que sincroniza o relógio do convidado com o do host. Verifique se está instalado um script de inicialização (possivelmente /etc/init.d/vboxadd-timesync
); Se assim for, você pode parar a sincronização com sudo /etc/init.d/vboxadd-timesync stop
. Se não houver script de inicialização, você pode provavelmente apenas kill
do processo.
O que RunAsDate é o seguinte:
RunAsDate intercepts the kernel API calls that returns the current date and time (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime), and replaces the current date/time with the date/time that you specify.
No Linux, você tem algumas opções para realizar a mesma coisa:
-
Se você conseguir uma versão para Windows do programa, poderá executar o RunAsDate em Vinho (mas observe por um bug recente ).
-
Encontre uma biblioteca de wrapper para fazer isso ou escreva a sua. Algumas opções são dadas abaixo.
-
Use uma máquina virtual. Isso é um exagero, mas como um sistema operacional na VM guest é completamente separado do host subjacente, você pode definir a hora do sistema para algo completamente diferente. Pode ser mais rápido de configurar do que as outras opções.
A opção 2 pode ser realizada por diferentes métodos, dependendo do que você está tentando executar. A resposta de DaveParillo abaixo links para uma abordagem DIY que explica os diferentes métodos e inclui código para um executável. Algumas outras opções incluem:
-
datefudge
, disponível nos repositórios do Debian / Ubuntu e em outros lugares. -
Módulo perl Time-Fake , também nos repositórios da Debian como package
libtime-fake-perl
. -
Biblioteca de pré-carregamento do FakeTime (também conhecido como
libfaketime
, freshmeat link ), uma biblioteca que pode interceptar chamadas do sistema em binários vinculados dinamicamente. Disponível nos repositórios da Debian para Squeeze e Sid.