LINUX.ORG.RU

systemd 218

 ,


3

5

12 декабря был представлен очередной релиз системного менеджера systemd, совмещающего в себе функции системы инициализации, ведения журнала и управления сессиями пользователей. systemd основан на модели зависимостей (в противовес событийной модели), производит отслеживание процессов запущенных сервисов при помощи механизма cgroups ядра Linux, поддерживает механизмы сокет- и dbus-активации сервисов и предоставляет удобный декларативный синтаксис для описания демонов и других сущностей. Это позволяет производить агрессивную параллелизацию при запуске и остановке сервисов.

В рамках проекта также разрабатывается ряд легковесных приложений и демонов, выполняющих второстепенные, но распространённые задачи по управлению системой — от настройки подсистемы VT (systemd-vconsole-setup) до управления сетью (systemd-networkd) и профилирования загрузки (systemd-bootchart).

Список изменений:

  • Все компоненты systemd, обладающие конфигурационными файлами в /etc/systemd, теперь умеют считывать настройки из соответствующих *.d-директорий в /usr/lib, /run и /etc.

    Например, /etc/systemd/system.conf можно дополнять из /{usr/lib,run,etc}/systemd/system.conf.d/*.conf.

  • Добавлена команда systemctl edit, которая позволяет редактировать unit-файлы (используется редактор, указанный в переменной окружения $EDITOR).

    Возможные режимы работы таковы:

    • (по умолчанию): «режим дополнения», т. е. редактирование нового drop-in'а (создаётся и открывается /etc/systemd/system/$unit.d/override.conf)
    • --full: «режим исправления», т. е. редактирование всего юнит-файла (он предварительно копируется в /etc/systemd/system, если необходимо)
    • --runtime: «режим временных изменений», т. е. вместо /etc используется /run и все внесённые изменения живут только до перезагрузки
  • Команда systemctl is-enabled теперь выводит «indirect» вместо «static» (при этом код возврата равен 0) в тех случаях, когда секция [Install] юнита содержит только директивы Also=, т. е. когда сам юнит не может быть включен, но «включает» другие юниты.
  • Команда systemctl status ЮНИТ теперь выводит также и «предлагаемое» состояние юнита согласно preset'ам. Это показывает, должен ли юнит быть включен согласно дистроспецифичному дефолту.

    Пример:

    $ grep -R remote-fs.target /usr/lib/systemd/system-preset
    /usr/lib/systemd/system-preset/90-systemd.preset:enable remote-fs.target
    
    $ systemctl status remote-fs.target
    ● remote-fs.target - Remote File Systems
       Loaded: loaded (/usr/lib/systemd/system/remote-fs.target; disabled; vendor preset: enabled)
    

  • Команда systemd-run теперь поддерживает отложенный запуск команд в стиле at(1) (параметры командной строки --on-calendar и аналогичные). Это реализовано с помощью создания временного timer-юнита наряду с основным service-юнитом (поддержка создания timer-юнитов как раз была добавлена в API systemd).
  • В команде busctl, предназначенной для работы с шиной D-Bus, добавлены следующие подкоманды и параметры командной строки:
    • busctl capture (захват всех данных, проходящих через шину, в формате libpcap)
    • busctl tree (отображение дерева объектов для конкретного сервиса или для всех сервисов на шине)
    • busctl introspect (отображение подробной информации о конкретном объекте на шине)
    • busctl call, busctl get-property и busctl set-property (предназначение очевидно из названий)
    • busctl --augment-creds= (включение или отключение сбора вспомогательных данных о процессах на шине из /proc)

      Последняя опция по умолчанию включена, но в некоторых случаях это может привести к race conditions, поэтому и была добавлена возможность её отключения.

  • В команде journalctl добавлены параметры командной строки --vacuum-size= и --vacuum-time=, позволяющие принудительно удалить старые файлы журнала. Как легко понять из названий параметров, критерием очистки может быть или суммарный размер файлов журнала, или давность сообщений в конкретном файле.
  • В команде systemd-nspawn добавлены параметры командной строки --link-journal=try-guest и --link-journal=try-host, которые работают аналогично значениям guest и host (а именно — включают объединение журналов хоста и контейнера), но не возвращают ошибку, если на хосте ведение постоянного журнала отключено.

    Параметр командной строки -j теперь является синонимом для --link-journal=try-guest.

  • Команда systemd-inhibit при отображении списка активных ингибиторов теперь поддерживает фильтрацию по типу (block или delay).
  • Для каждой директивы вида ConditionXYZ= в секции [Unit] unit-файлов добавлена аналогичная директива AssertXYZ= в той же секции.

    Отличие между ними состоит в том, что невыполнение Condition-директив приводит к пропуску (игнорированию) юнита, а невыполнение Assert-директив переводит юнит в состояние «failed».

  • В секциях [Scope] и [Service] unit-файлов добавлена директива Delegate=, разрешающая процессам юнита самостоятельно управлять своим поддеревом контрольных групп.
  • В секции [Service] unit-файлов добавлена директива SmackProcessLabel=, позволяющая установить для всех процессов юнита указанную метку SMACK64.
  • Директива ConditionSecurity= unit-файлов теперь может принимать значение audit, что будет приводить к проверке доступности audit-подсистемы ядра.
  • systemd-coredump теперь собирает и кладёт в журнал вместе с core-дампом некоторое количество метаданных об упавшем процессе, а именно:
    • контрольные группы, к которым принадлежал процесс (/proc/$PID/cgroup)
    • список переменных окружения и их значения (/proc/$PID/environ)
    • карту адресного пространства процесса (/proc/$PID/maps)
    • рабочую директорию (/proc/$PID/cwd)
    • корневую директорию (/proc/$PID/root)
    • состояние процесса (/proc/$PID/status)
    • список открытых файловых дескрипторов (/proc/$PID/fd)
  • journald теперь умеет собирать сообщения audit-подсистемы ядра (с обработкой сопутствующих метаданных) и записывать их в общий лог. В частности, это означает, что journalctl становится альтернативой традиционному audit-клиенту ausearch.
  • systemd-networkd теперь поддерживает:
    • конфигурирование VXLAN-устройств (секция [VXLAN] netdev-файлов)
    • указание «стоимости» портов bridge-устройств (директива Cost= в секции [Bridge] network-файлов)
    • настройку правил IP source routing (директива Source= в секции [Route] network-файлов)
    • выбор сетевого интерфейса по его исходному имени (до переименования; директива OriginalName= в секции [Match] link-файлов)
    • изменение MAC-адреса и MTU интерфейса из network-файлов (директивы MACAddress= и MTUBytes= в секции [Link] network-файлов)
  • В systemd-networkd начата работа по реализации протокола PPPoE.
  • NSS-модуль nss-myhostname теперь ресолвит имя «gateway» в IP-адрес шлюза по умолчанию. Если таковых несколько — они сортируются по значению метрики.

    Отмечу, что это изменение не нарушает работу конфигураций, в которых имя «gateway» уже как-либо используется, поскольку модуль nss-myhostname обычно идёт последним в списке NSS-модулей.

  • macvlan-устройства, создаваемые systemd-nspawn внутри контейнеров, теперь имеют стабильные MAC-адреса (в том смысле, что они не будут изменяться каждый раз).
  • systemd-cryptsetup-generator теперь поддерживает указание key-файлов и назначение имён для отдельных устройств из командной строки ядра (luks.key=<UUID>=<имя файла> и luks.name=<UUID>=<назначаемое имя устройства>).
  • В systemd-tmpfiles добавлено действие t — назначение файлу произвольных расширенных атрибутов (xattrs).
  • systemd-localed теперь опционально зависит от libxkbcommon. Эта библиотека будет использоваться для проверки корректности устанавливаемых настроек раскладки клавиатуры X11 (напр., с помощью localectl set-x11-keymap).
  • В systemd-hostnamed список текстовых описаний типов системы (chassis type) был пополнен значением «embedded».
  • systemd-rfkill теперь ассоциирует запоминаемое состояние rfkill'а не с его именем (rfkill0, rfkill1, ...), а с комбинацией его типа (wlan, bluetooth, ...) и свойства ID_PATH.

    Это связано с тем, что имя rfkill'а не обязано сохраняться между перезагрузками или переподключениями устройства. Более того, в последнем случае оно никогда не остаётся прежним.

  • База данных аппаратного обеспечения (hwdb) udev'а теперь содержит базу данных разрешений оптических сенсоров мышей. Она будет использоваться в libinput для автоматической коррекции ускорения курсора.

    Ситуация более подробно описана в этом сообщении.

  • systemd теперь умеет корректно обрабатывать ситуации, в которых система одновременно
    • не имеет файла /etc/machine-id
    • запускается с корневой ФС в режиме «только чтение»

    Для обработки этих случаев была добавлена вспомогательная утилита systemd-machine-id-commit, которая запускается сразу после перемонтирования корневой ФС в режим «чтение и запись» и атомарно перемещает временный файл machine-id из tmpfs в /etc/machine-id.

>>> Объявление о релизе

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 7)

Видел тред на одной странице.

ioway
()

В systemd-networkd начата работа по реализации протокола PPPoE.

База данных аппаратного обеспечения (hwdb) udev'а теперь содержит базу данных разрешений оптических сенсоров мышей.

Хахаха. Кто там лечил про ембеддед и 100500 серверов?

ioway
()
Ответ на: комментарий от ioway

Ась? systemd (и, тем более, udevd) не ограничивается ни десктопами, ни серверами. Он пригоден и для тех, и для других.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Ась? systemd (и, тем более, udevd) не ограничивается ни десктопами, ни серверами. Он пригоден и для тех, и для других.

При такой архитектуре он ограничивается «очень некоторыми» десктопами.

Да и «пригоден» в данном контексте это скорее «запускается». Вот только зачем? Объясняю на пальцах:

- Чем больше сущностей оно в себя пытается собрать, тем ниже гибкость и надежность.

- «Ну не собирай со всеми опциями» - не катит, стоковые пакеты будут собраны в стиле «все включено».

Ну а в довесок, скорее субъективное. Ты в его код заглядывал? Этож кромешный п-ц.

ioway
()

Это говно, а не новость. Надо совсем не уметь писать новости чтобы всё валить в одну кучу вместо приведения только основных и самых важных моментов.

Quasar ★★★★★
()

В systemd-networkd начата работа по реализации протокола PPPoE.

А таки зачем systemd собственная реализация протокола PPPoE?

goingUp ★★★★★
()
Ответ на: комментарий от ioway

Уже обсуждалось неоднократно, очередному хейтеру повторять всё это крайне утомительно. Тем не менее:

  • «новые сущности» добавляются отдельными компонентами, гибкость и надёжность проекта в целом от этого не уменьшается
  • нет, именно что катит, потому что те, кому не нужно, могут пересобрать (а если не можешь пересобрать — что ты вообще здесь делаешь? сиди и спокойно юзай свой дистрибутив)
  • заглядывал, причём не только в режиме read-only, и код там очень хороший
intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от goingUp

Не systemd, а systemd-networkd. У этого компонента задача такая: минимальный сетевой стек без внешних зависимостей, который можно запихнуть куда угодно.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от Quasar

Я перевёл чейнджлог, дропнул детали для разработчиков и отсортировал пункты по важности. Разрешаю тебе не читать то, что не интересно.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

очередному хейтеру

С чего ты взял что я хейтер? Хейтер это человек с необъяснимыми приступами ненависти, а я спокоен как слон.

кому не нужно, могут пересобрать

А зачем пересобирать systemd, разбираясь в его говнокоде, когда можно просто его не использовать, отвязав от него пару пакетов.

заглядывал, причём не только в режиме read-only, и код там очень хороший

У меня для тебя очень плохие новости. Очень-очень.

ioway
()
Ответ на: комментарий от goingUp

А таки зачем systemd собственная реализация протокола PPPoE?

Потому что у предыдущей реализации был «фатальный недостаток». :D

ioway
()

Отличная новость! #виделтреднаоднойстранице

Sunderland93 ★★★★★
()
Ответ на: комментарий от ioway

Хейтер это человек с необъяснимыми приступами ненависти

разбираясь в его говнокоде

Приступ номер раз.

 — «Ну не собирай со всеми опциями» - не катит
 — Катит, потому что каждый может пересобрать
 — А зачем пересобирать, когда можно не использовать?

Неадекватность номер два.

intelfx ★★★★★
() автор топика

Когда Лёня всё же допишет свою «венду с шахматами и поэтессами» надеюсь он оставит линукс админам и гикам, как и было задумано изначально. #нечиталноосуждаю

haku ★★★★★
()
Ответ на: комментарий от intelfx

заглядывал, причём не только в режиме read-only, и код там очень хороший

А кстати, на правах оффтопа, мне все время интересно как ты в этом systemd так прокачался, как попал в этот проект (тут 99% пользователей ненавидят или просто не замечают systemd)?

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

«Попал в проект» — слишком громко сказано. Баги репорчу, в рассылку пишу да присылаю по патчу в месяц.

А просто потому что интересно; кажется, ещё за пару лет до systemd неоднократно хотелось иметь что-нибудь, что отслеживает зависимости между демонами, умеет на основе этого в труъ-параллелизацию и так далее. (Но тогда я был слишком нуб, чтобы самостоятельно собрать и поставить тот же апстарт или standalone-супервизор.) И вот уже недавно, разбираясь с особенностями запуска иксов и пользовательских приложений в systemd --user, пришлось в значительной степени подразобраться в том, как устроен низкий уровень линуксового юзерспейса.

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Приступ номер раз.

Мнение

Неадекватность номер два.

Мнение. Системд навязывается, все что навязывается рано или поздно требует обслуживания. Если трудозатраты по обслуживанию выше трудозатрат по его удалению - логичней удалить.

Кстати это не я хейтер. Это ты фанбой. Чем-то сродни юному скрипачу потерявшему девственность с пьяной шлюхой. Все вокруг говорят «Вася, она же форменная бл#ядь», а ты твердишь как мантру:«Это не бл#дство это прогрессивные отношения, а вы ханжи и ретрограды». Правда потом, попозже, в 100500й раз выходя из вендиспансера с полной жопой пенициллина, появляются первые проблески: «А может она все-таки бл#дь»?

ioway
()
Ответ на: комментарий от ioway

В systemd-networkd начата работа по реализации протокола PPPoE.

А я помню, как в какие-то лохматые года, большая часть лайв-сд шла без поддержки PPPoE. Больно стукнулся об это на федоре и убунте.

Нет-уж. PPPoE настолько распространен, что нужен. :(

По поводу реализации - там причесанный код из ppp, вроде.
Кроме того, не забывайте, что systemd-networkd - не является обязательным компонентам systemd. Вы-же не гоните на ядро, за то, что кто-то набросал такое: Поддержка цитат bash.org в zen-sources

kir2yar
()
Ответ на: комментарий от ioway

Бгг. «Мнение». Нет, подменять тезис среди разговора — это совершенно точно неадекватность.

Во-первых, никто не навязывает. Иди и пользуй дистрибутив без systemd (и без программ, которые используют API systemd). А если ты скажешь, что разработчики «не должны завязывать свои программы на systemd» — я отвечу так: никто тебе ничего не должен.

Во-вторых, «все что навязывается рано или поздно требует обслуживания» — вообще какая-то шизофазия. Никак не связанные вещи.

В-третьих, это ты пришёл в тред о systemd, а не я — в тред о каком-либо другом ините. Так что хейтер ты.

intelfx ★★★★★
() автор топика
Ответ на: комментарий от ioway

Мнение. Системд навязывается, все что навязывается рано или поздно требует обслуживания. Если трудозатраты по обслуживанию выше трудозатрат по его удалению - логичней удалить.

Навязывается? О, не, чувак. Как можно заставить людей пользоваться тем, что им не нравится? При наличии живой альтернативы.

Все основные дистры перешли на системд. Почему?
Потому-что Леннард угрожал кому-то дробовиком?
Потому-что гном привязался к системд? (что-то мне подсказывает, что раз гном работает-таки на опенке и фряхе - привязка там не жесткая)
Потому-что системд, внезапно, и правда хороший?

Или ты из тех, кто верит в кровавых жидо-массонов из редхата, которые ночами пишут зловещий опенсорс?

kir2yar
()
Ответ на: комментарий от kir2yar

Навязывается?

Да.

О, не, чувак. Как можно заставить людей пользоваться тем, что им не нравится?

Очень просто. Половина мантайнеров не-РХ дистров тупо тянут патчи с РХ-пакетов, для того чтобы этого не делать - надо бросать все и начинать х-рять как папа Карло. Но сказать «х-й с ним» всегда проще. К тому же возьмем за пример дебиан. Большинство участвовавших в голосовании - «мальчик-confgure-make-make install», высказались за, против выступили внезапно реальные мэтры, но их всегда 20 на 80.

При наличии живой альтернативы.

Рассказывай, я весь внимание.

Все основные дистры перешли на системд. Почему?

Поштучное голосование всегда приводит к идиотским результатам.

ioway
()
Ответ на: комментарий от intelfx

Бгг. «Мнение».

Да внезапно, мнение.

Нет, подменять тезис среди разговора

Ну ты же решил высказаться о моей адекватности. Я пояснил, все по-чесноку.

вообще какая-то шизофазия.

Слушай, давай так сделаем, ты сейчас покажешь мне диплом психолога и лицензию и мы тут же обсудим мои недостатки.

В-третьих, это ты пришёл в тред о systemd

Ой что серьезно? Ты это... дыши глубже, а то и потолки дома изцарапаешь и мозоль на носу натрешь. Или аллергия на критику?

ioway
()

Когда же они наконец успокоятся? Это слишком далеко зашло.

anonymous
()

Отличные новости! Разворачивать кластер контейнеров, управляемый systemd, теперь еще удобнее!

plm ★★★★★
()
Ответ на: комментарий от intelfx

У этого компонента задача такая: минимальный сетевой стек без внешних зависимостей

Это не описка ? Именно сетевой стек ?

AS ★★★★★
()

Уже пол часа как новость подтвердили, а всего одна страница.

Polugnom ★★★★★
()
Ответ на: комментарий от kir2yar

Вы-же не гоните на ядро, за то, что кто-то набросал такое:

А это что, включили в основную ветку ?

AS ★★★★★
()
Ответ на: комментарий от AS

Это не описка ? Именно сетевой стек ?

Хотели же микроядро - получите, распишитесь. VT уже вынесли, теперь за стек принялись.

anonymous
()
Ответ на: комментарий от AS

Наверное, всё-таки описка. Судя по всему, я некорректно понимал значение этого термина. Ман говорит «network manager».

intelfx ★★★★★
() автор топика
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от AS

Именно сетевой стек ?

Именно сетевой стек. Причем сумрачная мысль упоротого гения совсем не ясна. Загрузка в ДЦ по сети? Но для этого никогда не нужен был PPPoE. Сетевой стек для мониторинга? Но тогда где поддержка SNMP? Вобщем полный разброд и шатание, ни целей, ни майлстоунов, ни документации.

ioway
()
Ответ на: комментарий от ioway

И ещё раз выскажусь, потому что ты (судя по всему) ещё и читать не умеешь. Ну или упорно не хочешь.

Или аллергия на критику?

Аллергия на неадекватов.

intelfx ★★★★★
() автор топика

Кое-кто нашёл свою священную корову.

aes_ultimum ★★
()
Ответ на: комментарий от AS

ЧСХ, на этот раз причина именно такая, слово в слово.

intelfx ★★★★★
() автор топика

модераторы, не подтверждайте новости про systemd от других поциентов! пусть этот мужЫк теперь их пишет всегда!

intelfx, вот такими должны быть новости на лоре! не то, что на опеннете — явно писал лентяй, который нифига не видел системд.

за новость благодарность, ждём ебилдов. :3

funeralismatic ★★★
()
Ответ на: комментарий от alozovskoy

тут 99% пользователей ненавидят или просто не замечают systemd

Уверен что 99% там и не пахнет. Просто хейтеры визжат очень громко, а те кого все устраивают - они молчат.

Loki13 ★★★★★
()
Ответ на: комментарий от ioway

если бы ты был спокоен, ты бы не кукарекал тут весьма истеричненько

anonymous
()
Ответ на: комментарий от ioway

То http://i.imgur.com/qVVxt94.png

Что «то», если я перехожу по данной тобой ссылке? Не знаю, откуда bugzilla берет этот list_id, но она его таки берет.

К слову, существенная часть этих багов не имеет к systemd непосредственного отношения.

dexpl ★★★★★
()

Он причиняет мне столько боли. После каждой такой новости весь день просто котэ под хвост. Он говорит, что все его ненавидят, что все виноваты. Но что он сделал для того, чтобы его любили? Любой может написать велосипедный комбайн, и назвать это офигенной фичей. Но от этого он не станет офигенной фичей.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.