Выпуск системного менеджера systemd 244
30 ноября 2019 года
После трёх месяцев разработки представлен релиз системного менеджера systemd 244.
Основные изменения:
- Добавлена поддержка контроллера ресурсов cpuset на базе cgroups v2, предоставляющего механизм для привязки процессов к определённым CPU (настройка "AllowedCPUs") и NUMA-узлам памяти (настройка "AllowedMemoryNodes");
- Добавлена поддержка загрузки настроек из EFI-переменной SystemdOptions для конфигурации systemd, что позволяет настраивать поведение systemd в ситуации, когда проблематично изменить параметры командной строки ядра, а конфигурация с диска читается слишком поздно (например, когда нужно настроить опции, связанные с иерархией cgroup). Для установки переменой в EFI можно использовать команду 'bootctl systemd-efi-options';
- В юниты добавлена поддержка загрузки настроек из каталогов "{unit_type}.d/", привязанных к типам юнитов (например, "service.d/"), которые могут применяться для добавления настроек, охватывающих сразу все файлы юнитов данного типа;
- Для сервисных юнитов добавлен новый режим sandbox-изоляции ProtectKernelLogs, позволяющий запретить доступ программы к лог-буферу ядра, доступному через системный вызов syslog (не путать с одноимённым API, предоставляемым в libc). В случае активации режима доступ приложения к /proc/kmsg, /dev/kmsg и CAP_SYSLOG будет заблокирован;
- Для юнитов предложена настройка RestartKillSignal, позволяющая переопределить номер сигнала, используемого для завершения процесса в ходе выполнения перезапуска задач (можно изменить поведение остановки процесса на стадии подготовки к повторному запуску);
- Команда "systemctl clean" адаптирована для применения с юнитами сокетов, монтирования и подкачки (socket, mount, swap);
- На ранней стадии загрузки отключены ограничения на интенсивность вывода ядром сообщений через вызов printk, что позволяет накапливать более полные логи о ходе загрузки на стадии, когда хранилище для логов ещё не подключено (лог накапливается в кольцевом буфере ядра). Настройка лимитов для printk из командной строки ядра имеет больший приоритет и позволяет переопределить поведение systemd. Программы systemd, напрямую выводящие лог в /dev/kmsg (это делается только на раннем этапе загрузки), используют отдельные внутренние ограничения для защиты от заполнения буфера;
- В утилиту systemctl добавлена команда 'stop --job-mode=triggering', позволяющая остановить как указанный в командной строке юнит, так и все юниты, которые могут его вызвать;
- Информация о состоянии юнита теперь включает сведения о вызывающих и вызываемых юнитах;
- Обеспечена возможность использования настройки "RuntimeMaxSec" в scope-юнитах (ранее применялась только в service-юнитах). Например, "RuntimeMaxSec" теперь может применяться для ограничения времени PAM-сеансов через создание scope-юнита
для учётной записи пользователя. Ограничение по времени также может задаваться через опцию systemd.runtime_max_sec в параметрах PAM-модуля pam_systemd;
- Добавлена новая группа системных вызовов "@pkey", при ограничении контейнеров и сервисов упрощающая добавление в белые списки системных вызовов, связанных с защитой памяти;
- В systemd-tmpfiles добавлен флаг "w+" для записи в режиме дополнения файла;
- В вывод systemd-analyze добавлены сведения о соответствии конфигурации памяти ядра с настройками systemd (например, если какая-то сторонняя программа изменила параметры ядра);
- В systemd-analyze добавлена опция "--base-time", при указании которой календарные данные рассчитываются относительно времени, указанного в данной опции, а не относительно текущего системного времени;
- В "journalctl --update-catalog" обеспечено постоянство следования элементов в выводе (полезно для организации повторяемых сборок);
- Добавлена возможность указания значения по умолчанию для настройки "WatchdogSec", используемой в сервисах systemd. На этапе компиляции базовое значение может быть определено через опцию "-Dservice-watchdog" (если выставлено пустое значение, watchdog будет отключён);
- Добавлена сборочная опция "-Duser-path" для переопределения значения $PATH;
- В утилиту systemd-id128 добавлена опция "-u" ("--uuid") для вывода 128-разрядных идентификаторов в UUID (каноническое представление UUID);
- Для сборки теперь требуется libcryptsetup как минимум версии 2.0.1.
Изменения, связанные с настройкой сети:
- В systemd-networkd добавлена поддержка переконфигурирования линка на лету, для чего в networkctl добавлены команды "reload" и "reconfigure DEVICE…" для перезагрузки настроек и переконфигурирования устройств;
- В systemd-networkd прекращено создания маршрутов по умолчанию для локальных линков IPv4 с интранет адресами 169.254.0.0/16 ( Link-local). Ранее автоматическое создание маршрутов по умолчанию для подобных линков приводило к непредвиденному поведению и проблемам с маршрутизацией в некоторых случаях. Для возвращения старого поведения следует использовать настройку "DefaultRouteOnDevice=yes". Аналогично прекращено назначение локальных адресов IPv6, если локальная маршрутизация IPv6 для линка не включена;
- В systemd-networkd при подключении в беспроводным сетям в режиме ad-hoc, по умолчанию реализовано применение конфигурации с локальной для линка адресацией (link-local);
- Добавлены параметры RxBufferSize и TxBufferSize для настройки размера принимающего и отправляющего буферов сетевого интерфейса;
- В systemd-networkd реализовано объявление дополнительных маршрутов IPv6, регулируемая через опции Route и LifetimeSec в секции "[IPv6RoutePrefix]";
- В systemd-networkd добавлена возможность настройки маршрутов "next hop" при помощи опций "Gateway" и "Id" в секции "[NextHop]";
- В systemd-networkd и networkctl для DHCP обеспечено обновление привязок IP-адресов (leases) на лету, реализуемое командой 'networkctl renew';
- systemd-networkd обеспечен сброс конфигурации DHCP при перезапуске (для сохранения настроек следует использовать параметр KeepConfiguration). Значение настройки SendRelease по умолчанию изменено на "true";
- В клиенте DHCPv4 обеспечено использование значения опции OPTION_INFORMATION_REFRESH_TIME, переданное сервером. Для запроса у сервера специфичных опций предложен параметр "RequestOptions", а для отправки серверу опций - "SendOption". Для настройки типа IP-сервиса DHCP-клиентом добавлен параметр "IPServiceType";
- Для подстановки DHCPv4-серверм списка серверов SIP (Session Initiation Protocol) добавлены параметры "EmitSIP" и "SIP". На стороне клиента приём от сервера параметров SIP может быть включён при помощи настройки "UseSIP=yes";
- В клиент DHCPv6 добавлен параметр "PrefixDelegationHint" для запроса адресного префикса;
- В файлах .network обеспечена поддержка сопоставления беспроводных сетей по SSID и BSSID, например, для привязки к имени точки доступа и MAC-адресу. Значения SSID и BSSID отображаются в выводе networkctl для беспроводных интерфейсов. Дополнительно добавлена возможность сопоставления по типу беспроводной сети (параметр WLANInterfaceType);
- В systemd-networkd добавлена возможность настройки дисциплин организации очередей для управления трафиком при помощи новых параметров Parent,
NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec, NetworkEmulatorPacketLimit и NetworkEmulatorLossRate, NetworkEmulatorDuplicateRate в секции "[TrafficControlQueueingDiscipline]";
- В systemd-resolved обеспечена проверка IP-адресов в сертификатах при сборке с GnuTLS.
Изменения, связанные с udev:
- В systemd-udevd удалён 30-секундный таймаут для принудительного завершения зависших обработчиков. Systemd-udevd теперь дожидается завершения работы обработчиков, для которых 30 секунд было недостаточно для штатного завершения операций в крупных установках (например, таймаут мог прервать инициализацию драйвера в процессе переключения примонтированного раздела для корневой ФС). При использовании systemd таймаут, который systemd-udevd будет ждать перед выходом, может быть задан через настройку TimeoutStopSec в systemd-udevd.service. При запуске без systemd таймаут регулируется параметром udev.event_timeout;
- Для udev добавлена программа fido_id, которая идентифицирует токены FIDO CTAP1
("U2F")/CTAP2 на основании данных об их прошлом использовании и выводит необходимые переменные окружения (программа позволяет обойтись без внешних белых списков всех известных токенов, которые использовались ранее);
- Реализована автоматическая генерация udev-правил autosuspend для устройств из белого списка, импортированного из Chromium OS (изменение позволяет расширить применение энергосберегающих режимов для дополнительных устройств);
- В udev добавлена новая настройка "CONST{key}=value", позволяющая напрямую выполнять сопоставления значений системных констант без запуска отдельных обработчиков для проверки. В настоящее время поддерживаются только ключи "arch" и "virt";
- Обеспечено открытие CDROM в неэксклюзивном режиме при выполнении операции запроса поддерживаемых режимов (изменение решает проблемы доступа программ к CDROM и уменьшает риск прерывания программ записи на диск, не применяющих эксклюзивный режим доступа).
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.