Выпуск systemd 217 c реализацией консоли в пространстве пользователя

Леннарт Поттеринг (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».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.