После трех месяцев разработки вышел релиз Systemd 235. Основные изменения: Поддержка automake прекращена. В качестве сборщика используется Meson, использующий инструментарий ninja. Для unit-файлов представлены опции RuntimeDirectory и RuntimeDirectoryPreserve, позволяющие определить путь к runtime-каталогу (в иерархии /run или $XDG_RUNTIME_DIR) и поведение в отношении сохранения его содержимого после остановки unit-а. Например, указание RuntimeDirectory=foobar приведёт к размещению данных в каталоге /run/foobar и удалению после завершения работы сервиса, если для него не установлена опция RuntimeDirectoryPreserve; По аналогии с RuntimeDirectory для unit-ов представлены опции StateDirectory, CacheDirectory, LogsDirectory и ConfigurationDirectory, позволяющие вынести данные состояния, кэша, логов и настроек в отдельные подкаталоги в иерархиях /var/lib/, /var/cache/, /var/log/ и /etc, содержимое которых сохранится между запусками сервиса. Дополнительно добавлены вспомогательные пары опций, определяющие режим доступа к каталога - StateDirectoryMode, CacheDirectoryMode, LogsDirectoryMode, ConfigurationDirectoryMode. В Systemd-Jornald реализована более агрессивное кеширование из /proc/ , а также запись в /proc/, что позволило увеличить производительность записи логов при большой нагрузке. Так как метаданные читаются в асинхронном режиме, их состояние может немного запаздывать относительно выводимых в лог записей. Владельцам SSD с TLC-памятью рекомендуется быть поосторожнее. В unit-ы добавлена опция IPAccounting, при включении которой для сервиса добавляются счётчики с данными о трафике и числе пакетов. Данные о трафике можно посмотреть через «systemctl status» или «systemd-run --wait»; Обеспечено сохранение в логе сведений о потреблении ресурсов CPU и трафике. Запись создаётся при каждой остановке юнита, если включены опции CPUAccounting или IPAccounting; В unit-ах реализован Firewall, основанный на опциях IPAddressAllow и IPAddressDeny. Ограничения можно наложить как на входящий, так и на исходящий трафик. В systemd-networkd представлена серия новых настроек, задаваемых через файлы .network: Scope (область достижимости) в секции [Address], ConfigureWithoutCarrier (игнорировать статус линка при настройке) в секции [Network], Anonymize (включение опций анонимного профиля RFC 7844) в секции [DHCP], Type (определение спецмаршрутов для направления трафика в blackhole/unreachable/prohibit) в секции [Route]. Добавлена новая секция [RoutingPolicyRule] для задания правил маршрутизации; В файлы .netdev добавлены опции: Table в секции [VRF] для выбора используемой таблицы маршрутизации, Independent в секции [Tunnel] для настройки туннеля независимо от связанного с ним сетевого интерфейса, GroupForwardMask в секции [Bridge] для настройки распространение локальных сетевых кадров между портами сетевого моста; В файлах .link добавлены новые режимы работы опции WakeOnLan, добавлена настройка TCP6SegmentationOffload для включения аппаратного ускорения обработки сегментов TCP/IPv6; В реализацию сервера для анонса маршрутов IPv6 (Router Advertisment) добавлена поддержка отправки записей RDNSS и RDNSSL для передачи настроек DNS; В systemd-nspawn добавлен флаг "--system-call-filter" для добавления и удаления элементов из применяемого по умолчанию фильтра системных вызовов. Реализована возможность определения белых списков системных вызовов с запретом всех остальных (ранее предлагались черные списки); Добавлены новые фильтры групп системных вызовов: @aio, @sync, @chown, @setuid, @memlock, @signal и @timer, которые можно указывать через опцию SystemCallFilter или флаг "--system-call-filter"; В опцию ExecStart для unit-файлов добавлены два новых модификатора: При указании префикса "!" команда запускается без смены идентификатора пользователя/группы (без вызова setuid/setgid/setgroups). Второй модификатор "!!" идентичен "!" за исключением того, что его действие игнорируется на системах с поддержкой наследования расширенных прав (capabilities PR_CAP_AMBIENT, появились в ядре 4.3); В systemd-run добавлен флаг "--pipe", при котором в вызываемый сервис systemd передаются файловые дескрипторы на STDIN/STDOUT/STDERR, что позволяет использовать его в цепочке с другими утилитами в shell с передачей данных через неименованные каналы; Для каждого сервиса обеспечено поддержание счётчика перезапусков, который можно посмотреть командой «systemctl show -p NRestarts сервис». Для unit-файлов реализована новая опция LockPersonality, позволяющая на лету привязать сервис к выбранному домену выполнения; В поставку добавлен файл для modprobe.d, обеспечивающий переопределение параметров модуля bonding для корректного управления интерфейсом bond0 из systemd-networkd; В journald.conf добавлена включенная по умолчанию настройка ReadKMsg, управляющая чтением лога ядра в systemd-journald, а также опция LineMax для задания максимального размера строки при выводе логов через STDOUT/STDERR; В nss-myhostname/systemd-resolved по умолчанию обеспечена генерация DNS-записей A/AAAA для хоста «_gateway» вместо ранее применяемого имени «gateway», так как оно используется для внутренних нужд некоторых дистрибутивов (старое поведение можно вернуть во время сборки); Добавлен новый целевой юнит для пользовательских сеансов: «getty-pre.target», который выполняется до консольного входа в систему; Для увеличения качества энтропии в генераторе псевдослучайных числе systemd теперь при запуске каждого виртуального окружения пытается загрузить модуль ядра virtio-rng.ko; В /etc/crypttab обеспечена возможность применения опции _netdev, по аналогии с /etc/fstab, для организации настройки шифрованных устройств после запуска сети; Для подключения внешних обработчиков в cryptsetup.target добавлено два целевых юнита remote-cryptsetup-pre.target и remote-cryptsetup.target, решающих те же задачи, что remote-fs.target и remote-fs-pre.target в local-fs.target; В сервисы добавлена опция UnsetEnvironment, позволяющая убрать любую переменную окружения, которая в обычных условиях будет передана сервису; Команды «systemctl poweroff», «systemctl reboot», «systemctl halt», «systemctl kexec» и «systemctl exit» теперь всегда выполняются в асинхронном режиме, т.е. сразу возвращают управление, не дожидаясь фактического завершения операции; В systemd-resolve добавлен флаг "--reset-server-features", при указании которого очищаются и перезапрашиваются ранее полученные сведения о возможностях вышестоящих DNS-серверов. Отправка данных в лог теперь включает сведения о всех используемых DNS-серверах.
Ссылка:
https://www.linux.org.ru/news/opensource/13733799