Pare o Ubuntu de atualizar automaticamente o horário

4

Só preciso definir a data temporariamente. Eu corro isso

date 051918002010.00

e fica por apenas 5 segundos ou mais. Em seguida, sincroniza com o servidor de horário. Eu tentei:

ps aux | grep ntp

mas não há nada lá.

Eu preciso de uma resposta correta agora, mais que uma resposta mais detalhada depois:)

Editar: Como os respondentes descobriram rapidamente, meu Ubuntu está rodando em um VirtualBox, o que acabou sendo relevante para algumas versões da resposta. Obrigado a todos.

    
por Dan Rosenstark 15.12.2009 / 22:36

4 respostas

7

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:

  1. Se você conseguir uma versão para Windows do programa, poderá executar o RunAsDate em Vinho (mas observe por um bug recente ).

  2. Encontre uma biblioteca de wrapper para fazer isso ou escreva a sua. Algumas opções são dadas abaixo.

  3. 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.

por 16.12.2009 / 14:13
5

Como sua resposta de comentário a Dan McG parece indicar que você está executando o Ubuntu como um convidado do VirtualBox, se você tiver instalado as adições de convidados do VirtualBox, eles sincronizarão automaticamente o horário do convidado com o host.

ps -ef | grep VBoxService

deve mostrar o serviço de adições de convidados do VirtualBox em execução.

Você pode tentar:

sudo /etc/init.d/vboxadd-service stop

para pará-lo até a reinicialização.

    
por 15.12.2009 / 22:52
3

Resposta Rápida: Desconecte sua conexão de rede:)

    
por 15.12.2009 / 22:37
3

Você também pode ver ' libfaketime ', que é fornecido no Ubuntu / Debian.

Ele permite que você falsifique a hora do sistema para um programa sem ter que alterar a hora do sistema (interceptando as chamadas do sistema usando LD_PRELOAD)

    
por 16.12.2009 / 13:17