Релиз системного менеджера Systemd 198
9 марта 2013 года
Леннарт Поттеринг (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.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.