Używam Ubuntu na systemie osadzonym opartym na ARM, który nie ma RTC zasilanego bateryjnie. Czas budzenia upłynął gdzieś w 1970 roku. Dlatego używam usługi NTP, aby zaktualizować czas do bieżącej godziny.
Dodałem następujący wiersz do /etc/rc.local
pliku:
sudo ntpdate -s time.nist.gov
Jednak po uruchomieniu nadal zajmuje to kilka minut, zanim czas zostanie zaktualizowany, w którym okresie nie mogę efektywnie pracować z tar
i make
.
Jak mogę wymusić aktualizację zegara w danym momencie?
AKTUALIZACJA 1: Poniższe (dzięki Ericowi i Stephanowi) działa dobrze z linii poleceń, ale nie aktualizuje zegara po włożeniu /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
Co ja robię źle?
AKTUALIZACJA 2: Próbowałem postępować zgodnie z kilkoma sugestiami, które pojawiły się w odpowiedzi na pierwszą aktualizację, ale wydaje się, że nic tak naprawdę nie wykonuje zadania zgodnie z wymaganiami. Oto, co próbowałem:
- Zamień serwer na
us.pool.ntp.org
- Użyj wyraźnych ścieżek do programów
- Usuń
ntp
usługę całkowicie i pozostaw tylkosudo ntpdate ...
wrc.local
- Usuń
sudo
powyższe polecenie wrc.local
Korzystając z powyższego, maszyna nadal uruchamia się w 1970 roku. Jednak po zrobieniu tego z wiersza poleceń po zalogowaniu (via ssh
) zegar jest aktualizowany, gdy tylko się wywołam ntpdate
.
Ostatnią rzeczą, którą zrobiłem, było usunięcie tego rc.local
i połączenie z ntpdate
moim .bashrc
plikiem. To aktualizuje zegar zgodnie z oczekiwaniami i otrzymuję prawdziwy bieżący czas, gdy wiersz polecenia jest dostępny.
Oznacza to jednak , że jeśli urządzenie jest włączone i żaden użytkownik nie jest zalogowany, czas nigdy nie otrzyma aktualizacji. Mogę oczywiście ponownie zainstalować ntp
usługę, aby przynajmniej zegar był aktualizowany w ciągu kilku minut od uruchomienia, ale potem wracamy do kwadratu 1.
Czy istnieje więc powód, dla którego umieszczenie ntpdate
polecenia rc.local
nie wykonuje wymaganego zadania, a robi to .bashrc
dobrze?
sudo
z plików /etc/rc.locale. Są one już uruchomione jako root.
timedatectl
, ale askubuntu.com/questions/832646/…
ntpdate -s ntp.ubuntu.com
[1]: askubuntu.com/a/81301/130162