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)
Ответ на: комментарий от dexpl

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

Само собой, там есть ошибки из разряда «не установилось на холодильник». Но такой процент шума есть везде. Но так чтобы у багзиллы пагинация сломалась, ты же не будешь утверждать, что это от того что весь мир сошел с ума?

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

Но так чтобы у багзиллы пагинация сломалась, ты же не будешь утверждать, что это от того что весь мир сошел с ума?

Ну может быть анонимусам результат отдается без разбивки на страницы.

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

Конфигуратор и есть. dhcp клиент/сервер - это ещё не сетевой стек. А PPP проверяется просто - собирается ядро без PPP и смотрится, работает ли.

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

Ну может быть анонимусам результат отдается без разбивки на страницы.

Често, я первый раз туда посмотрел, когда этот срачик начался. До этого только открывал исходники systemd, вспоминал времена когда только выучил _синтаксис C_ (а не язык, как мне казалось), задавался вопросом:«Вот это? В продакшн? Серьезно?», давал себе ответ «Нагуй-нагуй» и как то вглубь не лез. Ну учитывая активность местных фанбоев, решил таки глянуть в багзиллу, может там все чисто и радужно, а я просто старпер-ретроград, ан нет. Там все _очень_ плохо.

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

Тебе к психологу нужно срочно.

Леонерд, залогинься!

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

Это не нарушает мое утверждение - тех, кто «славит» systemd тут можно по пальцам пересчитать.

А зачем славить, если можно просто пользоваться? Я вообще подозреваю, что тут не меньше 50% системд используют, т.к. как минимум все(кроме упоротых) арчеры, все федорасты. Я вот генту свою на системд перевел, чтобы от мейнстрима не отставать.

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

Катит, потому что жри что дают

нет, именно что катит, потому что те, кому не нужно, могут пересобрать (а если не можешь пересобрать — что ты вообще здесь делаешь? сиди и спокойно юзай свой дистрибутив)

Отличный комментарий. Вся гибкость оставлена на этапе сборки, на этапе установки и настройки шиш. systemd катит, потому что жри что дают. Debian теперь можно будет ставить только на настолки, хочешь поставить Debian на свой ARM'овский маршрутизатор — трахен канпеляхен.

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

надеюсь он оставит линукс админам и гикам

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

anonymous
()
Ответ на: Катит, потому что жри что дают от Camel

Debian теперь можно будет ставить только на настолки, хочешь поставить Debian на свой ARM'овский маршрутизатор — трахен канпеляхен.

А что, раньше без этого обходилось? Сколько не ставил что-нибудь на не-x86, без канпеляхен чего-нибудь ни разу не получилось.

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

Debian для всего

А что, раньше без этого обходилось? Сколько не ставил что-нибудь на не-x86, без канпеляхен чего-нибудь ни разу не получилось.

Ставил Debian на MIPS'овский ноутбук, домашнюю NAS и ARM'овскую телеприставку. В последнем случае канпелять пришлось загрузчик.

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

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

Товарищ погорячился: это подсистма управления и настройки сети, так что стек высокоуровневых служебных протоколов, связанных с конфигурацией сетевой подсистемы. DHCP, PPPoE, VxLAN и всё такое... очень удобно.

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

без канпеляхен чего-нибудь ни разу не получилось.

Ну теперь будет секас с платформозависимыми вещами и два секаса с юзерлендом, чтобы откорчевать этот дефолт.

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

ни целей, ни майлстоунов, ни документации.

Спалился, хейтер! Идиоты всегда палятся на тривиальных вещах и незнании элементарного - у systemd эталонная документация. Открытые проекты со столь подробной и качественной документацией можно по пальцам пересчитать, к сожалению.

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

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

Не только, ещё мы регулярно шлём багрепорты реквестируя поддержку systemd в апстрим-проектах, благо найти или написать .service файл можно без проблем, а разработчики, как правило, очень положительно смотрят на тикеты с готовыми патчами.

Ну а баттхёрт идиотов на ЛОР под каждым упоминаем о подержке systemd где-либо - отличный дополнительный мотиватор, чтобы потратить немного свободного вредвижения systemd ;-)

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

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

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

узбагойся, он первокурсник

причём не только в режиме read-only

тут взоржал и долго рыдал

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

До этого только открывал исходники systemd, вспоминал времена когда только выучил _синтаксис C_

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

anonymous
()

ЛОР уже не торт. Какие-то кони пишут стремные новости, а потом еще матерят незнакомых мне людей в комментах. Ну что за неоадекваты понаехали тут!

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

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

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

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

тогда будет новость:

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

samy_volosaty ★★★★★
()

А багфиксы, багфиксы были? Например в journald.

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

Фанбои это хейтеры наоборот. Они такие же упоротые.

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

линукс админам и гикам, как и было задумано изначально

Нет, сегодня линукс суровый Ынтырпрайз и обратного пути нет! И это прекрасно!

mandala ★★★★★
()

кто-то опять подкинул дрожжей в ЭТО г...

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

ЛОР уже не торт. Какие-то кони пишут стремные новости, а потом еще матерят незнакомых мне людей в комментах.

лор всегда таким и был

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

А фанбои, если всем довольны, чего визжат как резанные? Вы действительно думаете что чем-то от хейтеров отличаетесь?

Никогда не был фанбоем системд, и вообще на технологии не фапаю. Просто длящийся 2 года плач ярославны по уходящим временам смешит уже.

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

«новые сущности» добавляются отдельными компонентами,
гибкость и надёжность проекта в целом от этого не уменьшается

Ты разбирался, как пакетные менеджеры работают ?

AS ★★★★★
()

Может хватит переходить на личности?

Почему-то любители программы под названием systemd вместо того чтобы обсуждать достоинства и недостатки любимой программы начинают оскорблять людей, обзываться, сыпать очень странными бесплодными обвинениями и всячески переходить на личности.

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

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

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

Вести дискуссии с людьми которым неведомы не то что правила ведения споров, а элементарные правила приличия вообще не стоит.

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

Никогда не был фанбоем системд, и вообще на технологии не фапаю. Просто длящийся 2 года плач ярославны по уходящим временам смешит уже.

Да нет никакого плача, есть лишь естественное недоумение, зачем нам вторая недовинда, если прекрасно себе существует первая, при чем без приставки недо-. Линуксы, они как бы не за это выбирались в качестве инструмента.

Это как вон с вейландом. Было:

  • Юниксы: архитектурно грамотный, но устаревший графических стек.
  • Винда: изначально архитектурно кривой, но за 20 лет допиленный до очень грамотной сетевой прозрачности графический стек.

Станет:

  • Юниксы: архитектурно кривой нихрена толком не умеющий стек для смартфонов и кофеварок.
  • Винда: всё тот же допиленный стек.

И всё это преподносится как «новые технологии». Ну да, ну да.

Deleted
()

Вы ничтожества, посмотрите на себя со стороны!

Сретесь в каждой теме из-за всяких мелочей, об одном и том же - из года в год. Вы как базарные бабки, одна заладит песню - остальные подхватывают, и давай гоготать... из года в год! Это отвратительно.

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

теперь это тред-детектор быдлокодеров. заодно можно пополнить игнор-лист новыми макаками, оправдывающими goto.

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

зачем нам вторая недовинда

почему венда, если идея системд слизана с макоси полностью? может быть вы хотели сказать зачем нам свободная макось? ну так свободная макось нам нужна.

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

из года в год! Это отвратительно.

Дожились - ононим пеняет онониму за участие в флейме, вызывающее у него отторжение, которое он, тем не менее, превозмогает который год.

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

новыми макаками, оправдывающими goto.

Эк ты Линуса приложил... может перестанешь стесняться и попробуешь донести до него эту мысль прямо в LKML? А то я подозреваю что на ЛОР он нечасто заглядывает ;-)

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

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

А вы сейчас в каком треде?

Так что хейтер ты.

Вот вам и говорят, вы фанбой.

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

На опенке и фряхе работает только некрогном.

Дык - мёртвое к мёртвому, всё логично.

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

почему венда, если идея системд слизана с макоси полностью?

Это не принципиально, т.к. подход одинаковый:

«Мы продаём вам черный ящик, который В БОЛЬШИНСТВЕ СЛУЧАЕВ работает правильно».

Правда с systemd проблема: RH продаёт не ящик, а поддержку, поэтому насчёт «большинства случаев» есть справедливые сомнения...

может быть вы хотели сказать зачем нам свободная макось? ну так свободная макось нам нужна.

Darwin уже закрыли обратно? Хотя нет, постойте... он просто оказался никому не нужен.

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

Юниксы: архитектурно грамотный, но устаревший графических стек.
Винда: изначально архитектурно кривой, но за 20 лет допиленный до очень грамотной сетевой прозрачности графический стек.

Почему в таких офигенно наархитектуренных иксах из коробки нельзя сделать терминальный сервер с восстановлением сессии, а в кривой винде начиная с NT4 - можно?

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

Почему в таких офигенно наархитектуренных иксах из коробки нельзя сделать терминальный сервер с восстановлением сессии

Потому что устарело почти на 30 лет. Но из этого никак не следует, что вейландовский говностек для кофеварок хотя бы на йоту лучше.

в кривой винде

В кривой винде, глядя на API, которое торчит наружу для приложений, хочется рыдать кровавыми слезами. Тем не менее, терминальный сервер действительно рабочий, и RDP проработан очень хорошо.

Об том и речь.

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

кудах кудах я не хейтер

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

/0

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