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


Источник: http://www.opennet.ru/opennews/art.shtml?num=40960