Выпуск systemd 217 c реализацией консоли в пространстве пользователя
29 октября 2014 года
Леннарт Поттеринг (Lennart Poettering) представил выпуск системного менеджера systemd 217, который сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux, одобрен переход дистрибутивов Debian и Ubuntu по умолчанию на systemd.
Наиболее существенные изменения:
- В состав включён демон systemd-consoled с реализацией эмулятора терминала для замены штатных консолей (kernel-console, linux-console), при сборке ядра без поддержки виртуальных терминалов (CONFIG_VT=n), т.е. позволяющий использовать kmscon в качестве реализации консоли в пространстве пользователя. В настоящее время systemd-consoled позиционируется как экспериментальная возможность, предоставляющая по одному терминалу для пользователей, в настройках которых указано "Desktop=systemd-console";
- По умолчанию включен алгоритм управления очередями ожидающих отправки пакетов fq_codel (Fair Queuing Controlled Delay), разработанный в рамках инициативы по борьбе с негативным влиянием промежуточной буферизации пакетов (Bufferbloat) сетевым оборудованием. В sysctl.d/ добавлен вызов "net.core.default_qdisc = fq_codel";
- Реализовано определение контейнеров Docker в качестве отдельного типа виртуализации;
- Поддержка формата базы активных учётных записей UNIX utmp теперь может быть активирована на этапе сборки для поддержки устаревших систем;
- Добавлена обработка опции "rescue", указываемой при загрузке ядра Linux. Если данная опция установлена, то systemd будет загружен в режиме защиты от сбоев (rescue.target). Ранее вызов данного режима требовал нажатия 1 или указания опции ядра "systemd.unit=rescue.target";
- Добавлена обработка опций командной строки ядра "mount.usr=", "mount.usrflags=" и "mount.usrfstype=", которые обрабатываются по аналогии с опциями "root=", "rootflags=" и "rootfstype=", но для раздела /usr;
- Добавлена поддержка нового сообщения D-Bus ALLOW_INTERACTIVE_AUTHORIZATION, позволяющего организовать процесс интерактивной авторизации с использованием PolicyKit при выполнении многих привилегированных операций, включая включение и выключение юнит-файлов;
- Добавлена поддержка завершения работы или перезагрузки в случае истечения таймаута нахождения задания в очереди запуска (JobTimeoutAction= и JobTimeoutRebootArgument=). Подобная возможность может быть задействована например для перезапуска в случае зависания на этапе загрузки или ипрекращения работы при случайном включении ноутбука в сумке и остановившегося на этапе ввода пароля доступа к зашифрованным дисковым разделам. По умолчанию инициируется завершение работы при неполном выполнении basic.target в течение 15 минут;
- Службы теперь могут заранее уведомлять управляющий процесс о предстоящем перезапуске (RELOADING=1) или прекращении работы (STOPPING=1), что позволяет отследить и показать внутреннее состояние подконтрольного процесса, а также избежать состояния гонки, когда процесс ещё полностью не завершился, но уже закрыл соединение D-Bus;
- В journalctl добавлены новые опции "-t/--identifier=" для выборки по идентификатору/тегу syslog и "--utc" для показа времени в GMT/UTC. Для отключения обрезания вывода по числу символов в строке теперь можно указать "-n/--lines=all";
- Пользовательские unit-ы теперь могут загружаться из директории $XDG_RUNTIME_DIR/systemd/user/, что позволяет явно переопределить путь для ранее поддерживаемой директории /run/systemd/user;
- Система управления пользовательскими сеансами systemd-logind теперь может быть настроена для обработки событий закрытия/открытия крышки ноутбука даже при подключении дополнительного монитора или подсоединения к док-станции (HandleLidSwitchDocked=);
- В systemd-networkd добавлена возможность указания метрик маршрутизации для маршрутов, добавленных через DHCP;
- Добавлена опция SELinuxContextFromNet=, позволяющая устанавливать контекст SELinux для сервисов активации по сокету на основе данных, предоставленных сетевым стеком;
- Прекращена поддержка средств загрузки прошивок в пространстве пользователя, в связи с чем версия минимально поддерживаемого ядра Linux повышена до выпуска 3.7;
- Для udev-правил добавлена возможность удаления тегов для устройств при помощи опции TAG-="foobar";
- Удалена реализация технологии readahead для заполнения дискового кэша при выполнении операций чтения, так как она во многих ситуациях не даёт ожидаемого выигрыша в производительности даже для НЖМД, а также неактуальна для SSD-накопителей;
- Протокол Password Agent добавлена поддержка запросов, при которых отображается пользовательский ввод, что полезно, например, для контроля ввода имени пользователя. Данный режим включается при запуске systemd-ask-password с опцией "--echo";
- При наличии поддержки kdbus для сервисных юнитов теперь доступна опция BusPolicy=, позволяющая привязать все сервисные процессы к специальной более защищённой шине, к которой ограничен доступ других сервисов;
- В утилите networkctl обеспечен показ файлов .network и .link, задействованных для определённого сетевого интерфейса;
- В утилиту systemctl добавлена поддержка новых команд "add-wants" и "add-requires" для упрощения задействования в юнитах специфичных целей;
- Удалена утилита "multi-seat-x", так как её функциональность теперь интегрирована в X Server 1.16;
- В команду "udevadm hwdb --update" добавлена поддержка опции "--usr" для размещения перестроенной базы оборудования в разделе /usr, вместо /etc;
- В .time-юниты добавлена возможность указания строкового определения периодов "semi-annually", "quarterly" и
"minutely" в дополнение к ранее доступным "anually" и "hourly".
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.