Доступен системный менеджер systemd 237

Леннарт Поттеринг представил релиз системного менеджера systemd 237. Из новшеств можно отметить поддержку VPN WireGuard, режим «watch-bind» в sd-bus, возможность создания временных юнитов .path и .socket, добавление опции »--grep» в journalctl.

Основные изменения:

  • В systemd-networkd добавлена поддержка VPN-туннелей WireGuard, в том числе представлены встроенные возможности по настройке сетевого интерфейса «wireguard» и инструментарий для управления ключами шифрования. WireGuard сочетает применение проверенных современных методов шифрования с предоставлением минималистичной реализации, лишённой усложнений, наблюдаемых в таких системах, как xfrm и OpenVPN. Для использования туннелей WireGuard требуется загрузка стороннего модуля ядра Linux, который представлен в репозиториях популярных дистрибутивов;
  • Раскладка кнопок увеличения и уменьшения масштаба, присутствующих на некоторых клавиатурах, теперь сопоставлена в hwdb с кодами вверх и вниз, что позволяет использовать данные кнопки для прокрутки (раньше было настроено сопоставление с кодами zoomin и zoomout, которые не воспринимаются в большинстве пользовательских окружений);
  • В journalctl добавлена опция »--grep» для вывода только записей, соответствующих заданной маске. По умолчанию в маске разделяется верхний и нижний регистр символов, для отключения разделения следует указать »--case-sensitive=no»;
  • Обеспечена возможность динамического создания временных («transient») юнитов .path и .socket (ранее поддерживались только временные юниты с типом service, mount, automount и timer). Утилита systemd-run адаптирована для применения новой функциональности для привязки на лету произвольных команд к пути или активации по сокету;
  • Изменено поведение строк типа «f» в systemd-tmpfiles, содержимое которых теперь записывается в файл только, если он несуществует (раньше, содержимое добавлялось к файлу при каждом запуске systemd-tmpfiles, что не соответствовало описанию флага «f» в документации);
  • Добавлена новая переменная окружения $SYSTEMD_OFFLINE, при установке которой systemctl начинает работать в режиме offline без взаимодействия с сервисным менеджером (ранее данный режим включался при выявлении запуска в chroot);
  • В systemd-mount добавлена опция »--owner=» для указания имени пользователя, которое будет преобразовано в uid/gid для указания через флаги uid= и и gid= в команде mount;
  • Для unit-ов представлен новый условные оператор ConditionControlGroupController, который проверяет доступность указанного контроллера cgroup;
  • В unit-ы, и файлы .link, .netdev и .network добавлена поддержка условного оператора ConditionKernelVersion для проверки наличия определённых версий ядра Linux;
  • В systemd-networkd в секцию »[IPVLAN]» файлов .netdev добавлена поддержка настройки флагов устройства при помощи опции «Flags=», в секцию »[Tunnel]» файлов .netdev добавлена опция AllowLocalRemote, в секцию »[Route]» файлов .network опции InitialCongestionWindow, InitialAdvertisedReceiveWindow и QuickAck, а в секцию »[DHCP]» — опция «RapidCommit»;
  • В реализацию DHCPv6 добавлена возможность делегирования префиксов;
  • Расширены возможности API sd-bus (универсальная прослойка для организации обмена сообщениями между процессами (IPC)): Добавлен режим «watch-bind» для организации обработки соединений сразу после создания сокета AF_UNIX (режим необходим для создания сервисов, работающих на раннем этапе загрузки). Поддержка данного режима обеспечена в systemd-networkd и systemd-resolved, для управления добавлена опция »--watch-bind». Также добавлена возможность генерации локального сигнала «Connected» сразу после настройки соединения с D-Bus. В API sd-bus добавлена несколько новых вызовов: sd_bus_request_name_async () и sd_bus_release_name_async () для регистрации имени шины в асинхронном режиме, sd_bus_match_signal () и sd_bus_match_signal_async () для сопоставления полей в сообщениях D-Bus, sd_bus_set_sender () и sd_bus_message_set_sender () для настройки имени отправителя сообщений;
  • В API sd-event, основанном на вызове epoll и позволяющем организовать цикл обработки событий (event loop), добавлен псевдообработчик SD_EVENT_DEFAULT., который может прикрепляться к любым объектам «sd_event*». Также добавлены функции sd_event_source_{get|set}_io_fd_own ();
  • Добавлен флаговый файл /etc/systemd/dont-synthesize-nobody, при наличии которого не будет создаваться пользователь с UID 65534 («nobody»);
  • В systemd-notify добавлена опция »--uid» для выбора пользователя/UID под которым сообщения с уведомлениями будут отправляться сервисному менеджеру;
  • Добавлена команда «systemd-analyze service-watchdogs» для вывода текущего состояния подсистемы автоматического восстановления работы сервисов (watchdog) и их выборочного включения или отключения;
  • В systemd-analyz добавлены универсальные опции «log-level» и «log-target», которые пришли на смену устаревшим опциям get-log-level/set-log-level и get-log-target/set-log-target, поддержка которых сохранена для обеспечения совместимости;
  • В sysusers.d добавлена поддержка указания в строках с типом «u» одновременно UID и GID, разделённых знаком »:», что позволяет создавать пользователей у которых не совпадают UID и GID.

© OpenNet