Выпуск системного менеджера 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 и уменьшает риск прерывания программ записи на диск, не применяющих эксклюзивный режим доступа).

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск системного менеджера systemd 244», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.