Після трьох місяців розробки доступний реліз системного менеджера systemd 262. У новій версії реалізовано вбудовування в процес мінімального набору unit-файлів, забезпечена підтримка зборки зі статичним зв'язуванням, проведена інтеграція c dm-clone для клонування блокових пристроїв, додано ведення БД встановлених файлів верифікація звітів systemd-report
Серед змін у новому випуску:
- У файл системного менеджера вбудований набір базових unit-файлів (basic.target, sysinit.target, multi-user.target, reboot.target, shutdown.target, systemd-poweroff.service і т.п.), які використовуються при неможливості завантажити unit-файли з диска. Подібне вбудовування дозволяє запускати контейнери з init-процесом (PID1) на базі systemd без встановлення unit-файлів.
- Додано підтримку складання у формі одного статично скомпонованого виконуваного файлу, який може застосовуватися для ініціалізації та запуску сервісів у контейнерах з мінімальною начинкою. Для складання зі статичним зв'язуванням при запуску meson слід вказати прапори: "-default-library=static -prefer-static -Dbuild-static=true -Dsystemd-multicall-binary=true".
- Інтегрована підтримка модуля ядра dm-clone, що дозволяє на основі доступного в режимі тільки для читання блокового пристрою створити клон, що допускає запис. Налаштування /etc/clonetab обробляються systemd-clonesetup-generator і зберігаються у формі юнітів systemd-clonesetup@.service, прив'язаних до clonesetup.target. Для створення та видалення клонів блокових пристроїв додана утиліта systemd-clonesetup.
- Розширені можливості інструментарію systemd-sysupdate, призначеного для автоматичного визначення, завантаження та встановлення оновлень з використанням атомарного механізму заміни розділів, файлів або каталогів (використовуються два незалежні розділи/файли/каталоги, на одному з яких знаходиться поточний працюючий ресурс, а на іншому встановлюється чергове оновлення, після чого розділи/файли). Реалізовано підтримку БД з інформацією про всі встановлені файли. Додана команда «systemd-sysupdate cleanup» для видалення файлів, які стали зайвими після оновлення системи або не відповідають поточному шаблону конфігурації. Додані команди «systemd-sysupdate enable-feature/disable-feature/enable-component/disable-component» для керування включенням функціональності та компонентів. Реалізована концепція компонентів, що рекомендуються, наприклад, командою «systemd-sysupdate enable-component —component-suggested» можуть бути включені драйвери, необхідні для роботи наявного обладнання. У команду "systemd-sysupdate update" додана опція "-component-all" для оновлення разом всіх компонентів.
- У systemd-report додано опцію «—sign=», що реалізує можливість засвідчення цифровим підписом звітів, що видаються командами «generate» та «upload». Запропоновано три бекенди для завірення звітів: systemd-report-sign-plain (Ed25519), systemd-report-sign-tsm (configfs TSM) і systemd-report-sign-tpm2 (TPM2 PCR).
- Для згладжування навантаження у разі масового перезапуску сервісів після збоїв запропоновано параметр RestartRandomizedDelaySec, який додає випадкову затримку перед автоматичним перезапуском сервісу, обмежену заданими рамками.
- У slice-юніти доданий параметр ActivatingConcurrencyMax для обмеження максимальної кількості одночасно активованих юнітів в ієрархії.
- Для сервісів реалізовано параметр LUOSession, призначений для створення сеансів Live Update Orchestrator, які застосовуються для оновлення ядра в Live-режимі без зупинки роботи та не втрачаючи стан системи, пристроїв та процесів.
- У socket-юнітах реалізовані параметри XAttrEntryPoint, XAttrListen та XAttrAccept, що дозволяють прикріплювати до UNIX-сокетів розширені атрибути (xattr) для їх маркування.
- Для автоматичного призначення імен хостів (/etc/hostname), що легко запам'ятовуються, реалізований новий символ підстановки «$», що замінюється на елемент зі списку слів, вибраний через хешування з прив'язкою до ідентифікатора системи.
- В утиліту run0 додані sudo-сумісні опції -k/-reset-timestamp, -K/-remove-timestamp та -v/-validate для відкликання або оновлення тимчасової авторизації, виконаної через polkit.
- В утиліту systemd-escape додана опція «stdin» для читання рядків зі стандартного введення.
- Vconsole додана змінна оточення FONT_SCALE для налаштування рівня масштабування шрифтів за аналогією з параметром ядра vconsole.font_scale (зі значень поки підтримується тільки 100% і 200%).
- До всіх команд, що підтримують опцію «—help», додано опцію «—introspect-cli» для виведення підказки у форматі JSON для спрощення автоматизації перевірки наявності необхідних опцій із надбудов та скриптів.
- При аутентифікації з використанням токенів FIDO2 забезпечено показ лічильника спроб введення PIN-коду, що залишилися.
- У systemd-networkd у секції «[Match]» файлів .link, .network і .netdev додано перевірку MachineTag, що дозволяє прив'язати налаштування мережі до наявності або відсутності певних тегів. У команду "networkctl reload" додано опцію "-no-reconfigure" для перезавантаження файлів .network і .netdev з диска без переналаштування існуючих мережних лінків. У файлах .network у параметрах IPoIB, IPVLAN, IPVTAP, MACsec, MACVLAN, MACVTAP, Tunnel, VLAN, VXLAN та Xfrm можна вказувати кілька імен мережних пристроїв, розділених пропуском.
- У systemd-journald механізм FSS (Forward Secure Sealing), що дозволяє гарантувати незмінність логів, переведений використання криптофункцій з бібліотеки OpenSSL замість libgcrypt. Бібліотека libsystemd більше не пов'язується з libgcrypt.
- В утиліту systemd-sysctl додана опція «verify», при якій значення параметра sysctl читається після виставлення і звіряється з вихідним значенням для перевірки чи була застосована зміна. Додано опції «—save=FILENAME» та «—revert=FILENAME» для збереження та відновлення налаштувань sysctl, розміщених у каталозі /run/sysctl.d/.
- Додано підтримку збірки з бібліотекою OpenSSL 4.
Джерело: opennet.ru
