LINUX.ORG.RU

systemd 215

 ,


1

3

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

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

Большая часть изменений, вошедших в этот релиз, была направлена на поддержку т. н. stateless-систем, в которых все данные находятся на разделе /usr (монтируемом в режиме только для чтения), а корень (включая /etc) размещается на tmpfs и автоматически пересоздаётся при каждой загрузке системы. Этот функционал предполагается использовать в легковесных контейнерах, а также как средство «полного сброса» без переустановки ОС.

Изменения по поддержке stateless-систем:

  • Добавлен компонентsystemd-sysusers, способный автоматически добавлять и исправлять записи о служебных пользователях в /etc/passwd и /etc/group, основываясь на декларативных определениях из /usr/lib/sysusers.d. Наиболее важные определения уже поставляются в этом релизе.
    Этот функционал является частью работы по поддержке stateless-систем.
  • В секции [Unit] юнит-файлов добавлена директива ConditionNeedsUpdate=, инструктирующая systemd запускать юнит-файл только в том случае, если требуется обновление или перестроение директорий /etc или /var. Юнит-файлы, использующие эту директиву, вероятно, должны содержать также директиву Before=systemd-update-done.service.

    В поставку включён ряд unit-файлов, использующих этот функционал и реализующих перестроение:

    • базы данных аппаратного обеспечения udev (/etc/udev/hwdb.bin);
    • каталога сообщений journald (/var/lib/systemd/catalog/database);
    • кэша динамического компоновщика (/etc/ld.so.cache, т. е. ldconfig).
  • systemd-tmpfiles теперь поддерживает действия L+, b+, c+ и p+. Это варианты соответствующих действий без знака «+», принудительно удаляющие файл назначения.
  • В systemd-tmpfiles действия L, L+, C, C+ теперь допускают отсутствие поля «argument». В этом случае исходный файл берётся из директории /usr/share/factory/<полный путь к файлу назначения>. Разработчики ОС могут размещать в указанной директории стандартные файлы конфигурации, которые должны копироваться в системные директории при запуске системы с пустым корнем.

    В поставку включён конфигурационный файл для systemd-tmpfiles, пересоздающий наиболее важные файлы в /etc.

  • Добавлена команда systemctl preset-all, применяющая стандартные настройки включения/отключения ко всем установленным юнит-файлам.
    («presets» — функционал systemd, предназначенный для автоматического включения или отключения служб в стиле «как должно быть по умолчанию».)
    В случае запуска системы с пустым /etc, эквивалент этой команды выполняется автоматически, чтобы включить и активировать все «стандартные» службы.

    В поставку включён preset-файл, предназначенный для автоматического включения самых важных юнитов.

  • Файл /etc/os-release перемещён в /usr/lib/os-release, поскольку он является статическим и его изменение не предполагается. В директории /etc автоматически создаётся симлинк на новое местонахождение.

Прочие изменения:

  • systemd-networkd теперь включает в себя клиент DHCPv6, поддержку IPv6 Router Solicitation, а также сервер DHCPv4.
    Клиент DHCPv4 теперь поддерживает получение от сервера статических маршрутов.
    Секция DHCPv4 network-файлов была переименована в DHCP; совместимость со старым синтаксисом сохранена.
  • systemd-networkd теперь поддерживает управление виртуальными сетями VXLAN, TUN/TAP и dummy-интерфейсами.
  • systemd-networkd теперь поддерживает автоматическое назначение интерфейсам статических адресов из предварительно указанного диапазона. Этот функционал предназначен для управления большим числом однотипных соединений, таких, как veth-интерфейсы между хостом и контейнерами.
  • systemd-coredump теперь генерирует стектрейс всех потоков упавшей программы и пишет его в лог. Этот функционал реализован на библиотеке libdw из состава elf-utils.
  • systemd-coredump теперь может сохранять core-дампы на диск (/var/lib/systemd/coredump), а не в лог. По умолчанию включен режим сохранения на диск.
    Также был добавлен конфигурационный файл /etc/systemd/coredump.conf, позволяющий настраивать это поведение и некоторые другие параметры.
  • Утилита systemd-coredumpctl была переименована в coredumpctl, что означает её готовность к широкому использованию.
    Также была добавлена команда coredumpctl info, отображающая подробную информацию о зарегистрированных core-дампах.
  • journald теперь по умолчанию работает в режиме SplitMode=uid, т. е. файлы логов разделяются по UID источников сообщений.
  • Добавлена команда systemd is-system-running, позволяющая узнать общий статус запуска системы (starting, stopping, running, maintenance, degraded).
  • machined теперь экспортирует (позволяет узнать через D-Bus) версию ОС в запущенных контейнерах.
  • Команда systemctl -H (подключение к другой машине по сети) теперь позволяет заходить в контейнеры, запущенные на такой машине. Синтаксис для этого выглядит как root@host:container. Следует обратить внимание, что пользователь должен быть root, т. к. обращение к контейнеру — привилегированная операция.
  • В секции [Mount] unit-файлов добавлена директива SloppyOptions=, эквивалентная ключу -s программы mount(8). Эта директива включает режим нестрогой обработки несуществующих опций монтирования.
  • В секции [Install] юнит-файлов добавлена директива DefaultInstance=, указывающая, какую строку использовать как instance по умолчанию, если запрошено включение шаблонного юнита без явного указания instance.
  • В секции [Service] юнит-файлов добавлена директива RestartForceExitStatus=, позволяющая указать набор кодов возврата из главного процесса, при которых служба будет принудительно перезапущена (вне зависимости от значения директивы Restart=).
  • Добавлена обработка параметров ядра systemd.wants=, systemd.mask= и systemd.debug-shell. Их обработка реализована в новом генераторе systemd-debug-generator.
  • Добавлена пассивная цель cryptsetup-pre.target. Она предназначена для служб, которые должны запуститься до начала инициализации LUKS-устройств.
  • Добавлена страница документации file-hierarchy(7), содержащая рекомендации по организации иерархии файловой системы в дистрибутивах, использующих systemd. По сути, это является обновлённой версией FHS или hier(7). (Уже обсудили на ЛОРе.)
    Также была добавлена утилита systemd-path, позволяющая узнать точные (действующие) пути для некоторых пунктов из указанной документации.
  • Из поставки исключён unit-файл, периодически (по таймеру) пересоздающий кэш man-db. Он теперь будет поставляться в составе самого man-db (начиная со следующего релиза).
  • systemd.pc теперь экспортирует больше путей (в т. ч. libdir и некоторые директории файлов конфигурации второстепенных компонентов systemd).
  • В поставку включены макросы RPM для обработки файлов конфигурации systemd-sysusers, systemd-sysctl и systemd-binfmt (т. е. для их считывания и применения «на лету»).

Изменения, касающиеся udev:

  • Файлы устройств /dev/loop-control и /dev/btrfs-control теперь принадлежат служебной группе disk.
  • Функционал предсказуемых имён сетевых интерфейсов в udev теперь использует свойство dev_port (добавленное в Linux 3.15) вместо dev_id, чтобы различать несколько PCI-портов на одной PCI-функции.
  • Добавлена новая служебная группа input, которая теперь назначается всем файлам устройств ввода. Её предназначение во многом аналогично таковому для групп audio и video.

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

★★★★★

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

Ответ на: комментарий от reprimand

А systemd ведь попадает под «do one thing and do it well»...

Скажи ещё, что coreutils разрабатывается против философии Unix, ведь там в одном репозитории и cat, и ls, и вообще dd.

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

Леннарт закапывает скриптоту в загрузке и это очень хорошо. А вот ко всему остальному… посмотрим увидим.

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

А я пишу стихи. И что?

Они кому-то нужны?

«в Microsoft его будут ставить в пример, вы немного подождите»

мне наплевать, пусть хоть Гитлера со Сталиным вместе ставят в пример. так понятно?

До него жили прекрасно, и проблем не было

Куча несовместимых между дистрибутивами плохочитаемых скриптов на баше? Спасибо, не надо. Нравится - живи и дальше, старые дистрибутивы никто не отменял.

NIH-синдром

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

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

А systemd ведь попадает под «do one thing and do it well»...

Слова из твоей же новости:

4 июля был представлен очередной релиз системного менеджера systemd, совмещающего в себе функции системы инициализации, ведения журнала и управления сессиями пользователей

Что ты там сказал, ну-ка повтори?

ведь там в одном репозитории и cat, и ls, и вообще dd

ОГО! В ОДНОМ РЕПОЗИТОРИИ! Ничего себе довод. Ты записываешься в местных клоунов, я вижу? А если я несколько книг положу на одну полку, у них что, автоматом станет общая обложка?

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

к сожалению, только 5% людей могут мыслить, у остальных рефлексия. Это заложено на генном уровне, сочувствую.

Ну допустим — у меня рефлексия, а ты феерический мыслитель, элита, так сказать. Но хотелось бы услышать:

Итак, почему ты считаешь, что если у микрософт 2х2=4, то надо сделать все, чтобы в линуксе было 2х2=3? Какой в этом смысл? Какая такая религия запрещает брать и учиться лучшему и хорошему?

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

Наверняка это можно сделать.

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

на самом деле хэйтеры хэйтят системд, потому что они закостенелые консерванты. Какого черта сколько там непонятного кода? А сколько из понятного они тут откомментили и зафиксили? Я за, чтобы конечный пользователь ничего не хотел знать о коде. Я за, чтобы кодом занимались профессионалы, а не школьники, позавчера выучившие С++. Сообщество пусть следит за открытостью и тестит. Остальные пусть займутся полезными делами: бабу там свою в ресторан сводят, поиграют с ребенком, помогут с ремонтом матери.

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

из того, что мне реально НЕ нравится в legacy системах без намеков на systemd - это resolv.conf и тупняк с ним связанный.

Леннарт закапывает скриптоту в загрузке

перефразируй, пожалуйста

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

Вот я у тебя и спрашиваю, неужели станет.

systemd как проект (что описано в новости) — это до хреновой тучи мелких утилит плюс udev плюс система инициализации, задачу которой можно сформулировать как «запуск демонов и управление ими».

Или, ещё шире (что, впрочем, обоснованно) — «управление всем, что торчит из ядра». systemd-emacs, как тут многие шутят, никогда не появится на свет.

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

Леннарт закапывает скриптоту в загрузке и это очень хорошо

Он переводит скриптоту на Си.

В netbsd есть lua в ядре, пожалуй отличный выбор для любителей скриптов.

И с какой целью ты это сказал?

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

Они кому-то нужны?

конечно! иначе я бы не писал их

мне наплевать

правда-правда? что-то не верится. Особенно после:

так понятно?

:) Мороженку купи себе

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

сначала определись что значит система и её настройка. Её можно по-разному настраивать. Голый LFS с bash тоже система. Централизованно? sysctl. Адрес для пирожка выслать?

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

Итак, почему ты считаешь, что если у микрософт 2х2=4, то надо сделать все, чтобы в линуксе было 2х2=3? Какой в этом смысл? Какая такая религия запрещает брать и учиться лучшему и хорошему?

каков вопрос такой и ответ. Логично?

А теперь мой ответ:

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

Текст был сгенерирован, если что. Надеюсь, ты получил удовольствие от этого.

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

Этому самому клиенту DHCP два-три месяца от роду.

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

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

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

Да, я понял — ты совок, ибо подменяешь понятия, переходишь на личности и несешь откровенную чепуху в ответ на простой вопрос.

Итак, почему ты считаешь, что если у микрософт 2х2=4, то надо сделать все, чтобы в линуксе было 2х2=3? Какой в этом смысл? Какая такая религия запрещает брать и учиться лучшему и хорошему?

У тебя просто нет ответа — ибо ты не в состоянии его произнести.

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

Может быть. Окей, тогда железная отговорка — этот функционал ещё никому не был нужен :)

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

Я за, чтобы конечный пользователь ничего не хотел знать о коде

поддерживаю!

Я за, чтобы кодом занимались профессионалы, а не школьники, позавчера выучившие С++

поддерживаю!

Сообщество пусть следит за открытостью и тестит.

поддерживаю!

Остальные пусть займутся полезными делами: бабу там свою в ресторан сводят, поиграют с ребенком, помогут с ремонтом матери.

поддерживаю!

Однако объясни мне, зачем нужно было пихать в толстый блоб столько всего? Если раньше это были шутки - то теперь это реальность. Для того, чтобы конечный пользователь ничего не знал о коде существуют дистрибутивы linux, существует в конце концов http://ru.wikipedia.org/wiki/Linux_Standard_Base. И если Патрик создал свою систему не обращая внимания на некоторый стандарты, а пользователи его системы жалуются на «тут не так как у всех! ААА!!», то это не повод жаловаться на зоопарк. Зоопарк существует в связи с тем, что он сам по себе возможен (по аналогии с «жизнь возможна там, где есть вода»).

Стандартизация в документарной форме - путь к успеху (на самом деле я не знаю где путь к успеху, я ляпнул что в голову пришло - вместо меня пусть Торвальдсы всякие решают)

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

Лучше умереть, чем есть цветную капусту использовать shell

/fixed

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

неужели станет

нет, не станет. Если ты о том самом, конечно.

systemd как проект (что описано в новости) — это до хреновой тучи мелких утилит плюс udev плюс система инициализации, задачу которой можно сформулировать как «запуск демонов и управление ими».

а давай мы точно сформулируем какие есть задачи у systemd? не упустив ни одной утилитко-функции. Вдруг мне systemd понравится, и я его установлю в свою систему.

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

У тебя просто нет ответа — ибо ты не в состоянии его произнести.

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

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

Преимущества скриптов ты прекрасно знаешь. То, что bash как ЯП (хотя я лично его как ЯП не считаю) многие считают

ужасом, летящем на крыльях ночи

я не отрицаю. Но это не делает его настолько плохим с учетом профита.

reprimand ★★★★★
()

Что-ль на systemd перейти?

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

Сомневаюсь, что понравится. И да, там _много_ бинарников и _много_ юнитов. Я навскидку не перечислю.

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

Сомневаюсь, что понравится.

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

И да, там _много_ бинарников и _много_ юнитов.

когда это нас останавливало? В ls /bin тоже много бинарников, и ничего, живем-радуемся.

Я навскидку не перечислю.

Так а я не прошу навскидку. Всё дело в том, что о systemd я узнал благодаря ЛОР-у (с сопутствующими комментариями), осмотре новостей/ченджлогов, осмотре официальном и сопутствующих сайтов, wiki. Было бы неплохо прикинуть «а что же на самом деле оно за зверь?», и в будущем кидать ссылку на результат нашей дискуссии. А может вообще создадим «Systemd haters handbook»? Интересная же затея.....

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

хм:)

а что там мержить?

автомержер это конечно мощно:)))

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

Я за, чтобы кодом занимались профессионалы, а не школьники, позавчера выучившие С++.

Значит ты против создателя системд.

With ★☆☆
()
Ответ на: комментарий от I-Love-Microsoft

Я, так уж и быть, разрешаю тебе не использовать systemd.

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

Вряд ли — слишком высокоуровневая штука.

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

на этом фоне в скором времени можно ожидать появление и доминирование понятия SystemD/Linux взамен устаревшего GNU/Linux.

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

Логика проста - если я могу открыть конфиг и отредактировать его с ходу, без ленивого листания манов - он прост и понятен.

А зачем вообще ручками что-то писать в /etc/{passwd,group,shadow,gshadow}, если есть user{add,del,mod}, group{add,del,mod}, ch{age,fn,grp,sh}, учитывающие как минимум /etc/login.defs, /etc/shells, /etc/nsswitch.conf и /etc/pam.d/*?

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

Мне кажется ты не знаком с философией юникс. Я начинал свое знаконство с линукс системами именно с нее. Она дает простое понимание всей системы и ее управление. Системд нарушает не один принцип философии юникс.

В последствии монополия системд просто в один прекрасный день вылезит боком. Почему? Да потому что не дает выбора. Допустим есть программа, которая может полностью заменить компонент системд. Но учитывая то, что вменяемого интерфейса системд не предоставляет, то отключить его(компонент) нельзя. Это выглядит как навязывание к его использованию.

Кроме того, системд настолько становится большим, что альтернативное его развитие скорее всего попросту невозможно. Две ветки эволюции лучше чем одна. Если одна зайдет в тупик, то другая возможно найдет правильный путь. Если кто-нибудь захочет поучавствовать в развитии системд, то не сможет. Форкать весь системд ради одного компонента как минимум глупо.

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

В последствии монополия системд просто в один прекрасный день вылезит боком

Это слишком хорошо, чтобы быть правдой. В крайнем случае, у Redhat хватит ресурсов, чтобы грубой силой заставлять systemd работать к моментам выхода RHEL.

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

В крайнем случае, у Redhat хватит ресурсов, чтобы грубой силой заставлять systemd работать к моментам выхода RHEL.

Из твоих слов создается впечатление, что systemd в принципе не работает и работать не может, а Red Hat стоит у всех над душой с пыточными инструментами и принуждает его использовать.

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

А что уже жиденько серишь? А вдруг найдёт?

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

Системд нарушает не один принцип философии юникс

Я начинал свое знаконство с линукс системами именно с нее

знаешь, что такое «синдром утёнка»?

Кроме того, системд настолько становится большим, что альтернативное его развитие скорее всего попросту невозможно. Две ветки эволюции лучше чем одна. Если одна зайдет в тупик, то другая возможно найдет правильный путь. Если кто-нибудь захочет поучавствовать в развитии системд, то не сможет. Форкать весь системд ради одного компонента как минимум глупо.

подставь вместо systemd слова linux kernel или, там, gcc, лол

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

Кстати, а в чём смысл хранения конфигов в текстовом виде? Может пора перейти на бинарные для простоты загрузки, как в своё время поступили с журналами.

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

Ты это анонимусу говоришь, лол?

И да, откуда такой фап на пять звёзд? Нормальному человеку плевать на то, сколько у него звёзд.

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

Может пора перейти на бинарные для простоты загрузки, как в своё время поступили с журналами.

Так зачем изобретать велосипед? Есть же проверенное временем решение с бинарными конфигами и логами — Microsoft©®™ Windows©®™.

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

в скором времени можно ожидать появление и доминирование понятия SystemD/Linux взамен устаревшего GNU/Linux

Выше по треду уже приводили ссылку http://www.opennet.ru/opennews/art.shtml?num=40148 :

Леннарт Поттеринг представил свою речь ... посвящённую настоящему и будущему системы инициализации systemd. В выступлении поясняется изменение фокуса развития проекта от системы инициализации к набору базовых компонентов для построения операционных систем.

Из планов на будущее отмечается реализация локального кэша DNS, создание простого сервера mDNS (Multicast DNS) и LLMNR (Link Local Multicast Name Resolution), добавление во встроенный резолвер системы для верификации DNSSEC, продвижение Kdbus в состав ядра Linux, улучшение интеграции с системами контейнерной изоляции.

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

Чёта я тебя не помню. Какой предыдущий ник был?

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