Я использую 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