Випуск системного менеджера systemd 244

Після трьох місяців розробки представлений реліз системного менеджера 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);
  • Додані параметри RxBufferSiz та 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 і зменшує ризик переривання програм запису на диск, які не застосовують ексклюзивний режим доступу).

Джерело: opennet.ru

Додати коментар або відгук