После полугода разработки Леннарт Поттеринг представил (https://lists.freedesktop.org/archives/systemd-devel/2018-De...) релиз системного менеджера systemd 240 (http://www.freedesktop.org/software/systemd/). Из новшеств можно отметить добавление нового типа сервисов "exec", возможность использования в systemd-resolved OpenSSL помимо GnuTLS, для генерации не требующих надёжности случайных чисел задействована инструкция RDRAND вместо /dev/urandom, добавлена поддержка сетевых туннелей Foo-Over-UDP, ERSPAN и ISATAP, реализованы утилиты systemd-id128 и systemd-run-generator, обеспечена официальная поддержка утилиты portablectl, добавлена команда "systemd-analyze security".Основные изменения:
- Добавлен новый тип сервисов "Type=exec", похожих на сервисы с типом "simple", но обеспечивающих ожидание завершения выполнения
fork() и execve() при вызове основного исполняемого файла перед продолжением обработки следующих юнитов. Новый тип может оказаться полезным когда требуется обработка ошибок при запуске, например, если в сервисе директива ExecStart указывает на несуществующий исполняемый файл, при использовании типа simple запуск юнита будет посчитан успешным (ошибка не видна на этапе форка и управление будет передано далее, не дожидаясь результата execve). При типе "exec" будет выявлен сбой запуска подобного юнита и возвращён соответствующий код ошибки. В следующем выпуске планируется использовать тип "exec" по умолчанию в утилите systemd-run при запуске временных ("transient") сервисов;
- В systemd-resolved добавлена возможность использования OpenSSL вместо GnuTLS для обеспечения работы DNS-over-TLS;
- На системах x86-64 в ситуациях, когда не требуется криптостойкие и непредсказуемые случайные числа, вместо /dev/urandom обеспечен вызов процессорной инструкции RDRAND. Данное изменение позволяет снизить число запросов энтропии от ядра в процессе инициализации (для генерации UUID по-прежнему используется полноценный генератор псевдослучайных чисел ядра);
добавлена поддержка сетевых туннелей Foo-Over-UDP, ERSPAN и ISATAP,
- В systemd-networkd добавлена поддержка сетевых туннелей Foo-Over-UDP, ERSPAN и ISATAP, а также добавлена опция ForceDHCPv6PDOtherInformation для принудительной установки бита "Other Information" в сообщениях IPv6 RA. Для совмещённых сетевых интерфейсов добавлены опции AdActorSystemPriority,
AdUserPortKey и AdActorSystem для настройки различных параметров 802.3ad, а также опция DynamicTransmitLoadBalancing для динамической балансировки потоков. Для сетевых туннелей добавлена опция IPv6RapidDeploymentPrefix для настройки функциональности IPv6 RD (Rapid
Deployment). В наборы правил добавлены опции IPProtocol, SourcePort, DestinationPort и InvertRule. Для сетевых мостов предложена новая опция MulticastToUnicast. Добавлена поддержка определения статических привязок для IPv4 ARP и доступных соседних хостов для IPv6;
- Добавлена утилита systemd-id128 для определения и генерации различных 128-битных идентификаторов;
- Обеспечена официальная поддержка команды portablectl, которая перемещена в
каталог /usr/bin/. Команда предоставляет средства для управления переносимыми сервисами (https://www.opennet.ru/opennews/art.shtml?num=48823) ("Portable Services"), позволяющими создавать системные сервисы в виде самодостаточных контейнеров (переносимый сервис поставляется в виде системного образа, но обрабатывается как обычный сервис);
- Добавлена базовая поддержка счётчиков загрузки (https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT), которая потенциально позволяет реализовать схемы загрузки, в которых в случае сбоя новой загрузочной записи автоматически выбирается старая загрузочная запись. На стороне загрузка указанная функциональность пока добавлена только в sd-boot;
- Добавлен новый генератор "systemd-run-generator", позволяющий синтезировать юниты на основе параметров, переданных в командной строке при загрузке ядра. Генератор удобно использовать при запуске контейнеров, например,
"systemd-nspawn -i someimage.raw -b systemd.run='some command line'";- Добавлена команда "systemd-analyze security" для анализа связанных с безопасностью и изоляцией настроек в системных юнитах;
- Ключи для доступа к зашифрованным дисков теперь могут размещаться на внешних носителях и подключаться по UUID из /etc/crypttab. В /etc/crypttab также добавлена опция "sector-size" для настройки размера сектора для зашифрованных разделов;
- Для всех длительно работающих сервисов выставлен запрет на получение новых привилегий (NoNewPrivileges=yes, для работы требуется обновление (https://github.com/fedora-selinux/selinux-policy/pull/234) правил SELinux);
- Сервисы systemd-networkd.service, systemd-resolved.service и systemd-timesyncd.service по умолчанию возвращены на работу под заранее определёнными системными пользователями (в прошлой версии была включена настройка DynamicUser=yes для работы с использованием динамически генерируемого идентификатора пользователя);
- Для загрузки юнитов, на которые указывают символические ссылки из каталога .wants/ или .requires/, теперь необходимо, чтобы файл юнита также находился в одном из штатных мест размещения, перечисленных в списке путей для поиска юнитов;
- Изменён выставляемый по умолчанию ядром Linux лимит на максимальное число файловых дескрипторов для пользовательских процессов (RLIMIT_NOFILE). Начиная с данного выпуска жёсткий лимит на число файловых дескрипторов поднят с 4096 до 512K, Мягкий лимит, который может быть увеличен из самого приложения, оставлен неизменным (1024 дескриптора). Жёсткий лимит повышен так как недавние оптимизации в ядре Linux существенно увеличили производительность манипуляций с большим числом файловых дескрипторов и снизили потребление памяти. Изменение также отражено в sysctl fs.nr_open и fs.file-max, которые теперь автоматически выставляются в максимально возможное значение (RLIMIT_NOFILE soft и RLIMIT_NOFILE hard);
- В случае отсутствия файла /etc/locale.conf systemd теперь по умолчанию использует локаль "C.UTF-8" и устанавливает переменную окружения LANG в значение "C.UTF-8";
- Значение sysctl "net.ipv4.conf.all.rp_filter (https://www.kernel.org/doc/Documentation/networking/ip-sysct...)" теперь по умолчанию выставляется в значение 2 (устанавливается режим Loose вместо Strict), что более приемлемо для хостов с несколькими сетевыми линками, маршрутизируемыми через одну сеть (например, когда клиент одновременно подключен через Wi-Fi и Ethernet);
- Добавлена директива DisableControllers для отключения отдельных контроллеров cgroup;
- Для юнитов реализованы новые свойства MemoryMin и IODeviceLatencyTargetSec, которые активируют для запускаемых процессов средства контроля потребления памяти и ожидания ввода/вывода, обеспечиваемые атрибутами cgroups v2 memory.min и io.latency;
- В journald при обработке логов от классического BSD syslog реализовано сохранение оригинальной строки с временем события, что позволяет корректно реконструировать оригинальные сообщения;
- В директивы StandardOutput и StandardError добавлен параметр "append:", позволяющий прикрепить STDOUT/STDERR вывод от сервиса к определённому файлу в режиме дополнения уже имеющегося в нём содержимого;
- Добавлена настройка KillSignal, позволяющая переопределить сигнал, отправляемый процессам при завершении работы unit-файлов (ранее всегда отправлялся SIGKILL).
- Значение переменной окружения XDG_SESSION_DESKTOP теперь может выставляться
при помощи опции "desktop=" в строке аргументов pam_systemd;
- Во все настройки, которые воспринимают значения с процентами, вместо символа '%' теперь можно использовать также знак '‰';
- В обрабатываемый при помощи systemd-resolved файл конфигурации resolved.conf добавлена опция "ReadEtcHosts", которую можно использовать для отключения обработки содержимого /etc/hosts;
- В команду "systemctl is-system-running" добавлена...
URL: https://lists.freedesktop.org/archives/systemd-devel/2018-De...
Новость: https://www.opennet.ru/opennews/art.shtml?num=49836