Доступен системный менеджер systemd 238
Как сообщает opennet.ru леннарт Поттеринг представил релиз системного менеджера systemd 238. Из новшеств можно отметить включение по умолчанию учета потребления памяти, расширение числа настроек systemd-sysusers, добавление настройки TemporaryFileSystem для переопределения частей ФС разделами tmpfs, обеспечение автоматического монтирования /sys/fs/bpf.
Основные изменения:
- Для unit-ов по умолчанию включена опция MemoryAccounting, обеспечивающая учет потребления памяти при помощи cgroup. По оценке разработчиков в современных ядрах (4.14+) негативное влияние на производительность аккаунтинга через cgroup минимально и данный режим уже готов для включения по умолчанию. Для отключения при сборке можно указать "-Dmemory-accounting-default=false". Учет потребления ресурсов CPU, ввода/вывода и сетевой активности по-прежнему отключен по умолчанию;
- Добавлена настройка TemporaryFileSystem для переопределения частей реальной ФС при помощи монтирования временных разделов на базе tmpfs. В комбинации с BindPaths и BindReadOnlyPaths новая возможность может применяться для скрытия файлов или каталогов, к которым не должен иметь доступ unit, сохраняя при этом возможность обращения к некоторым путям ниже в дереве директорий. Для скрытия домашней директории и runtime-каталогов может использоваться настройка ProtectHome=tmpfs, которая эквивалентна определению "TemporaryFileSystem=/home /run/user /root";
- В systemd-logind добавлена возможность вызова отдельного обработчика закрытия крышки ноутбука при наличии подсоединения к стационарному источнику питания (HandleLidSwitchExternalPower в logind.conf);
- В настройках sysusers.d для пользователя теперь можно указать номер группы в дополнение к цифровому идентификатору пользователя (например, "u username 123:456") или без него (например, "u username -:456");
- Настройки к systemd-sysusers теперь могут передаваться в качестве аргумента в командной строке через опцию "--inline";
- Добавлена возможность задания shell для пользователя через sysusers.d (раньше, всегда использовался /bin/sh для root и /sbin/nologin для остальных пользователей);
- Юниты, не являющиеся сервисами, теперь запускаются по умолчанию в режиме KeyringMode=shared, при котором утилиты mount и swapon имеют доступ к ключам в основном хранилище ключей;
- Обеспечено автоматическое монтирование /sys/fs/bpf;
- Выполняемые в процессе обновления rpm-пакета скрипты для обновления базы оборудования hwdb, правил udev и каталога с журналами (%udev_hwdb_update, %udev_rules_update, %journal_catalog_update) заменены на пустые заглушки, а данные операции вынесены в триггеры, запускаемые в конце транзакции установки пакета;
- В systemd-sysusers добавлен режим, при котором конфигурация задается в командной строке, но не выполняется напрямую, а вначале переносится в файлы конфигурации на диске. Режим полезен для применения в скриптах установки пакетов, в которых нужно создать пользователя до установки принадлежащих ему файлов на диск. Для rpm-пакетов новая возможность представлена в виде макроса %sysusers_create_package (макросы %sysusers_create и %sysusers_create_inline объявлены устаревшими). Аналогичный макрос (%tmpfiles_create_package) для сохранения настроек на диск добавлен для systemd-tmpfiles;
- В systemd-analyze добавлена опция "--global" для работы в контексте глобальной конфигурации пользователя и параметр unit-paths для перечисления путей загрузки unit-а, который можно использовать с опциями "--systemd", "--user" и "--global";
- В триггер udevadm добавлена опция "--settle" ("-w") для завершения работы после наступления любого обрабатываемого события;
- Добавлен новый вызов DBus org.freedesktop.systemd1.Manager.AttachProcessesToUnit, который можно использовать для миграции сторонних процессов в область обработки юнита;
- В systemd-detect-virt реализовано автоматическое определение механизмов виртуализации QNX, сведения о которых могут быть использованы в блоках ConditionVirtualization;
- В юнитах slice теперь можно использовать настройку IPAccounting;
- Добавлена новая сборочная опция "-Dsplit-bin" для определения точки слияния каталогов bin и sbin;
- Добавлена новая сборочная опция "-Dok-color" для определения цвета сообщений с состоянием "OK" в процессе сборки;
- Из-за проблемы с сериализацией юнитов, использующих настройку JoinsNamespaceOf вместе с режимом PrivateNetwork=yes, после установки новой версии systemd и выполнения daemon-reexec требуется перезапуск данных юнитов;
- Изменено поведение systemd-tmpfiles: доступные только на чтение файлы, владельцем которых является root, не будут исключаться из процесса чистки временной директории.