배터리 기반 RTC가없는 ARM 기반 임베디드 시스템에서 Ubuntu를 실행하고 있습니다. 깨우기 시간은 1970 년 어딘가에 있습니다. 따라서 NTP 서비스를 사용하여 시간을 현재 시간으로 업데이트합니다.
/etc/rc.local파일에 다음 줄을 추가했습니다 .
sudo ntpdate -s time.nist.gov
그러나 시작 후, 아직 내가 효과적으로 작동하지 않을 수있는 기간 동안 시간이 업데이트 될 때까지 몇 분, 소요 tar및 make.
주어진 시간에 시계를 강제로 업데이트하려면 어떻게해야합니까?
업데이트 1 : 다음은 Eric과 Stephan 덕분에 명령 줄에서 잘 작동하지만 넣을 때 시계를 업데이트하지 못합니다 /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
내가 무엇을 잘못하고 있지?
업데이트 2 : 첫 번째 업데이트에 대한 몇 가지 제안을 따르려고했지만 실제로 필요한 작업을 수행하는 것은 없습니다. 내가 시도한 것은 다음과 같습니다.
- 서버를 다음으로 교체하십시오.
us.pool.ntp.org - 프로그램에 대한 명확한 경로를 사용하십시오
ntp서비스를 모두 제거 하고 그대로 두십시오sudo ntpdate ....rc.local- 를 제거
sudo위의 명령에서rc.local
위의 방법을 사용하면 머신은 여전히 1970 년에 시작합니다. 그러나 일단 로그인 한 후 (를 통해 ssh) 명령 행에서이 작업을 수행하면 호출하자마자 시계가 업데이트됩니다 ntpdate.
내가 한 마지막 일은 그것을 제거하고 내 파일에 rc.local호출하는 것 ntpdate입니다 .bashrc. 이것은 예상대로 시계를 업데이트하고 명령 프롬프트가 사용 가능 해지면 현재 시간을 얻습니다.
그러나 이는 컴퓨터가 켜져 있고 사용자가 로그인하지 않은 경우 시간이 업데이트를받지 않음을 의미합니다. 물론 ntp서비스를 다시 설치할 수 있으므로 시작 후 몇 분 이내에 시계가 업데이트되지만 다시 정사각형 1로 돌아갑니다.
그렇다면 ntpdate명령을 배치 rc.local해도 필요한 작업이 수행되지 않고 작동 하는 이유는 무엇 .bashrc입니까?
sudo/etc/rc.locale 파일에서 사용할 필요는 없습니다 . 이미 루트로 실행되었습니다.
timedatectl, 그러나 askubuntu.com/questions/832646/…
ntpdate -s ntp.ubuntu.com[1] : askubuntu.com/a/81301/130162