Я запускаю 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: Я пробовал следовать нескольким предложениям, которые пришли в ответ на первое обновление, но ничто, похоже, действительно не выполняет работу по мере необходимости. Вот что я пробовал:
- Замените сервер на
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
работает нормально?