Релиз системного менеджера Systemd 198
Леннарт Поттеринг (Lennart Poettering) представил релиз системного менеджера systemd 198, примечательный добавлением утилит bootctl, systemd-activate и kernel-install, поддержкой SSL в systemd-journal-gatewayd, возможностью управлять ограничением ресурсов на лету, поддержкой переопределения опций unit-файлов через создание отдельных файлов в специальной директории, возможностью использования одного загрузочного раздела для разных дистрибутивов. Systemd сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux.
Из наиболее интересных новшеств можно отметить:
Добавлена поддержка переопределения отдельных элементов конфигурации unit-файлов или дополнения unit-файлов, через создание дополнительных файлов в ассоциированной с сервисом директории. Указанная возможности позволяет изменять параметры без непосредственного изменения unit-файла. Дополнительные файлы конфигурации создаются как »/etc/systemd/systemd/foobar.service.d/*.conf» и загружаются после обработки unit-файла, т.е. могут дополнять или переопределять их. Ранее для внесения изменений в unit-файлы приходилось копировать нужный unit из директории /usr/lib/systemd/system/ в /etc/systemd/system/ и там вносить в него изменения или создавать новый файл в /etc/systemd/system/ и подключать в нему существующий unit-файл через директиву ».include»; Обеспечена возможность динамического изменения на лету параметров ограничения ресурсов на базе cgroups для всех unit-файлов. Например, без остановки работы сервиса можно поменять ограничения командой, подобной «systemctl set-cgroup-attr foobar.service cpu.shares 2000». После выполнения команды изменение будет сохранено на диск и продолжит действовать после перезапуска сервиса; В nspawn в список включаемых для контейнеров capabilities добавлено назначение CAP_AUDIT_WRITE и CAP_AUDIT_CONTROL, что позволяет упростить загрузку в изолированном контейнере немодифицированной системы Fedora (отмечается, что Fedora по прежнему нужно загружать с передачей в ядро параметра audit=0 из-за наблюдаемых проблем в работе системы аудита); В nspawn добавлены новые опции »--bind=» и »--bind-ro=» для монтирования внутри контейнера заданных внешних директорий. Кроме того, nspawn теперь монтирует в контейнере собственную ФС devpts, что позволяет избежать утечки pty-устройств из основной системы; В systemd обеспечено чтение EFI-переменных с информацией о производительности процесса загрузки, предоставляемой прошивками. После загрузки указанную информацию можно проанализировать с использованием утилиты «systemd-analyze». Новая возможность пока работает только при использовании загрузчика Gummiboot, но в будущем может быть реализована и для других загрузчиков; Добавлен новый генератор, который автоматически монтирует ESP-разделы (EFI System Partition) в каталог /boot; В состав включена новая утилита bootctl с реализацией интерфейса для выполнения некоторых операций с загрузчиком. В настоящее время bootctl имеет статус экспериментальной разработки для начального ознакомления. В дальнейшем не исключено создание демона, подобного timedated, localed и hostnamed, который можно использовать в GUI-конфигураторах для перечисления доступных опций загрузки и инициирования служебного режима загрузки прошивки. Новая утилита kernel-install, предназначенная для установки образов ядра в соответствии со спецификацией Boot Loader; Новая утилита systemd-activate, которая может быть использована для тестирования и отладки активации демонов через сокет; Добавлена подборка unit-файлов для упрощения адаптации использования systemd в образах initrd. Данные unit-ы добавляют в systemd минимально необходимую логику из различных реализаций initrd; Прекращена поддержка устаревших или специфичных для отдельных дистрибутивов имён LSB-свойств, определяемых при разборе init-скриптов: $x-display-manager, $mail-transfer-agent, $mail-transport-agent, $mail-transfer-agent, $smtp, $null. Так как systemd большее не поддерживает скрипты ранней стадии инициализации, то также игнорируются свойства $syslog и $local_fs; Добавлена возможность сброса отдельных списочных параметров конфигурации unit-файлов, через присвоение им пустого значения. Например, ранее присвоение Environment=FOO=BAR приводило при каждом использовании к добавлению новых переменных в список переменных окружения. Указав «Environment=» теперь можно предварительно очистить список переменных окружения. Указанная возможность полезна в сочетании с представленной выше системой переопределения конфигурации ».d/*.conf», так как может использоваться для переопределения заданных в unit-файлах списков переменных; В systemd-journal-gatewayd добавлена поддержка SSL. Systemd-journal-gatewayd теперь выполняется под отдельным непривилегированным пользователем systemd-journal-gateway: systemd-journal-gateway; В файлах окружения, таких как /etc/locale.conf, теперь поддерживается слияние строк, перенесённых с использованием обратного слэша (»\»); В утилиту systemctl добавлена новая команда «list-dependencies» для рекурсивного отображения зависимостей unit-файла; Добавлена команда «systemctl unlock-sessions», позволяющая разом разблокировать экраны всех пользовательских сеансов, примерно также как выполняется общая блокировка через «systemctl lock-sessions»; Существенно расширен набор для тестирования unit-файлов; В команду udevadm hwdb добавлена опция »--root=», позволяющая указать корневую директорию, относительно которой выполняются операции; Компонент systemd-bootchart перелицензирован и теперь поставляется под лицензией LGPLv2.1+ как и весь пакет; Поддержка Policykit теперь может быть включена/отключена на этапе сборки; Утилита systemd-analyze переписана на языке Си и вобрала в себя функциональность команды «systemctl dot»; При запуске «systemctl status» без параметров теперь отображается общий статус всех активных и сбойных unit-ов; Python API расширен модулем для чтения файлов с журналом; В journalctl добавлены опции:»--reverse» (-r) для показа содержимого журнала с обратной сортировкой (новые записи сверху);»--pager-end» (-e) для перехода в конец журнала без листания вывода в less;»--user-unit=» — аналог »--unit=», отображающий только пользовательские unit-ы; Файлы с журналами теперь размещаются под отдельной группой «systemd-journal», созданной исключительно для организации доступа к журналам. Ранее владельцем файлов с журналами была группа «adm», которая используется не только для доступа к логам, теперь доступ «adm» и wheel» к файлам /var/log/journal назначается через ACL, а непосредственным владельцев является группа «systemd-journal»; В systemd-detect-virt добавлена поддержка определения гостевых систем Xen в режиме паравиртуализации; Файловая система pstore теперь монтируется по умолчанию, если она доступна в системе; В дополнение к правилам SELinux и IMA, на ранней стадии загрузки теперь осуществляется и загрузка правил SMACK.
© OpenNet