Авторские статьи

ntpdate и ntpd.


Всегда когда видел эти две программы меня не покидало чувство, что здесь что-то не так. Две программы, которые абсолютно по разному, занимаются вопросом актуальности времени на вашем компьютере. Зачем две? И вот вижу в почтовой рассылке разработчиков поднятый вопрос "ntp and ntpdate".

Сначала давайте разберём разницу в работе между ntpdate и ntpd. Ntpdate вызывают из различных служб, crontab и скриптов как и любую другую команду и ntpdate скачкообразно может изменить время, если оно сильно отличается от актуального.

Ntpd - это сервис-демон, который нежно и не торопясь, сделает время актуальным.

Оцените масштаб трагедии, когда в голове у тебя мысль, что нужно использовать ИЛИ ntpdate ИЛИ ntpd, поскольку они занимаются одним и тем же. Запустил свои тестовые полигоны из виртуальных машин с Ubuntu - MATE, Kubuntu, Gnome, Lubuntu, Xubuntu, Unity. Данные машины проверяют для меня работоспособность snap пакета, а так как он не имеет понятия зависимости как класс, то ntpdate и ntpd никто по зависимостям не ставил и таблица ниже отражает 99% правдивой информации. Сделал sudo dpkg -l | grep ntp

Название
ntpdate
ntpd
MATE
V
V
Kubuntu
V
X
Gnome
V
X
Lubuntu
V
V
Xubuntu
V
X
Unity
X
X

Почему Unity без всего будет разжёвано ниже.

Ситуация, как по мне, печальна. Каша из двух сущностей, занимающихся одним и тем же вопросом. Что обсуждают разработчики Ubuntu, привлекая внимание разработчиков родительского проекта Debian? Предлагается отказаться от ntpdate совсем из-за его скачкообразной природы (jump time) и редкостных вызовов (single shot). Ниже даны часть багов, которые возможно связаны с природой ntpdate:
ntpdate.dhcp always ignored
/etc/network/if-up.d/ntpdate does not detach correctly

Так как многие программы имеют зависимости именно от ntpdate (например dovecot-core), то элегантно можно было бы параметр NTPOPTIONS="-q" по умолчанию вносить в /etc/default/ntpdate и ntpdate делал бы запросы на актуальность времени, но не менял бы системные часы. То есть таким хитрым способом исключить его из игры, даже если кто-то потом поставит его в дополнение к ntpd явно или по зависимостям.

Но на этом вопрос со временем не заканчивается. Ubuntu переключилась на новую систему инициализации systemd и, если нет установленного ntpd, то временем занимается systemd-timesyncd. Вот почему в Ubuntu 16.04 с Unity нет ни ntpdate, ни ntpd, так как там рулит всем systemd-timesyncd по дефолту. Systemd сам по себе приносит унификацию в экосистему Убунту и в вопросе единственного решения актуальности времени. Никто не мешает вам в будущем поставить ntpd и тогда systemd-timesyncd даст рулить временем ему, а ntpdate красиво выведут из игры. Но как будет реализовано разработчиками стопроцентно покажет время

Дата последней правки: 2023-12-27 14:22:49

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта