배터리 기반 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