Я использую Ubuntu на встроенной системе на базе ARM, в которой отсутствует RTC с батарейным питанием. Время пробуждения где-то в 1970 году. Таким образом, я использую службу NTP, чтобы обновить время до текущего времени.
Я добавил следующую строку в /etc/rc.localфайл:
sudo ntpdate -s time.nist.gov
Однако после запуска все еще требуется несколько минут, пока не обновится время, в течение которого я не могу эффективно работать с tarи make.
Как я могу принудительно обновить часы в любой момент времени?
ОБНОВЛЕНИЕ 1: Следующее (спасибо Эрику и Стефану) прекрасно работает из командной строки, но не может обновить часы при вводе /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: я попытался следовать нескольким предложениям, которые пришли в ответ на 1-е обновление, но, похоже, на самом деле ничто не делает работу в соответствии с требованиями Вот что я попробовал:
- Заменить сервер на
us.pool.ntp.org - Используйте явные пути к программам
- Удалить
ntpсервис вообще и оставить толькоsudo ntpdate ...вrc.local - Удалить
sudoиз приведенной выше команды вrc.local
Используя вышеизложенное, машина все еще запускается в 1970 году. Однако при выполнении этого из командной строки после входа в систему (через ssh) часы обновляются, как только я вызываю их ntpdate.
Последнее, что я сделал, - удалил это rc.localи поместил вызов ntpdateв мой .bashrcфайл. Это обновляет часы, как и ожидалось, и я получаю истинное текущее время, как только доступна командная строка.
Однако это означает, что если машина включена, и ни один пользователь не вошел в систему, то время никогда не будет обновляться. Я, конечно, могу переустановить ntpслужбу, чтобы хотя бы часы обновлялись в течение нескольких минут после запуска, но тогда мы вернулись на круги своя.
Итак, есть ли причина, по которой размещение ntpdateкоманды в rc.localне выполняет требуемой задачи, в то время как это .bashrcработает нормально?
sudoв файлах /etc/rc.locale .. они уже запущены от имени пользователя root.
timedatectl, Но askubuntu.com/questions/832646/...
ntpdate -s ntp.ubuntu.com[1]: askubuntu.com/a/81301/130162