Estou executando o Ubuntu em um sistema embarcado baseado em ARM que não possui um RTC suportado por bateria. O horário de despertar está em algum lugar durante 1970. Assim, eu uso o serviço NTP para atualizar o horário atual.
Eu adicionei a seguinte linha ao arquivo /etc/rc.local
:
sudo ntpdate -s time.nist.gov
No entanto, após a inicialização, ainda leva alguns minutos até que a hora seja atualizada, período durante o qual não posso trabalhar com tar
e make
.
Como posso forçar uma atualização de relógio a qualquer momento?
UPDATE 1: O seguinte (graças a Eric e Stephan) funciona bem na linha de comando, mas não atualiza o relógio quando colocado em /etc/rc.local
:
$ date ; sudo service ntp stop ; sudo ntpdate -s time.nist.gov ; sudo service ntp start ; date
Thu Jan 1 00:00:58 UTC 1970
* Stopping NTP server ntpd [ OK ]
* Starting NTP server [ OK ]
Thu Feb 14 18:52:21 UTC 2013
O que estou fazendo de errado?
UPDATE 2: Eu tentei seguir as poucas sugestões que vieram em resposta à primeira atualização, mas nada parece realmente fazer o trabalho conforme necessário. Aqui está o que eu tentei:
- Substitua o servidor por
us.pool.ntp.org
- Use caminhos explícitos para os programas
- Remova o serviço
ntp
e deixe apenas sudo ntpdate ...
em rc.local
- Remova o
sudo
do comando acima em rc.local
Usando o acima, a máquina ainda inicia em 1970. No entanto, ao fazer isso a partir da linha de comando, uma vez logado (via ssh
), o relógio é atualizado assim que eu invoco ntpdate
.
A última coisa que fiz foi remover isso de rc.local
e fazer uma chamada para ntpdate
no meu arquivo .bashrc
. Isso atualiza o relógio conforme o esperado, e eu recebo a verdadeira hora atual assim que o prompt de comando estiver disponível.
No entanto , isso significa que, se a máquina estiver ligada e nenhum usuário estiver logado, a hora nunca receberá atualizações. É claro que posso reinstalar o serviço ntp
, de modo que, pelo menos, o relógio seja atualizado em poucos minutos após a inicialização, mas voltamos ao ponto 1.
Portanto, há uma razão pela qual colocar o comando ntpdate
em rc.local
não executa a tarefa necessária, enquanto isso em .bashrc
funciona bem?