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)

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

Побольше, чем полторы. Есть ещё CRUX, PCLinuxOS, Slackware...

anonymous
()

у меня до сих пор стоит 213, обновлятся пока не планирую.

уж больно этот systemd на монстра все больше становится похож.

все больше задумываюсь об альтернативе.

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

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

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

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

нет, призову модератора. твои личные амбиции никому нахефиг не нужны.

Ути маленькая, обидели тебя? Дай сопельки вытру... Почему плачешь - ты не осикалась при виде новости о systemd?

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

Когда Дунай потечет вспять.

Учитывая текущую ситуацию в мире, это не исключено, но я думаю, что перейдут гораздо раньше, после выхода Debian jessie.

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

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

Форум ч0рной магии, это ж надо - ты поди ещё и гороскопы читаешь, в астрологию веришь и гомеопатией лечишься? :-D

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

Прелесть этого формата в том что парсить его очень просто. Разделитель один символ и пробежатся по полям не составляет труда. Что касается читабельности, то скажу пользователю туда редко приходится заглядывать. А для работы над пользователями есть утилиты, по ним и понятные маны есть. В итоге что руками править, что утилитой менять — то же самое. Что кому больше нравится. Ну не написано что это поле пользователь или айди такой-то, не ужели это делает его менее читабельным? Да и к тому же поля там можно по пальцам пересчитать.

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

скорее взять клавиатуру и выпилить все лишнее или написать свое, если кому-то это на ум не придет)

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

в следующем релизе обещают systemd-emacs

а после него systemd-eclipse

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

С sendmail-ом разбираться где-то даже интересно, но только в первый раз и при наличии достаточного количества свободного времени. :-)

…и виски.

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

проверил, пересобрав пакет — абсолютно можно.

А выпилить systemd вообще, например из SuSe можно?

Если упадёт journald, systemd (PID 1) никогда не упадёт

systemd и сам прекрасно падать умеет. Я как-то его потестил немного - свежеустановленная SuSe при попытке запуска virt-manager начала ругаться systemctl что-то там. А где-то каждый пятый раз вообще не загружалась, фризилась в случайный момент. Помогал только ресет и молитва :)

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

Зато после победы вискаря sendmail становится ненужным :)

Это верно. Уже после третьей-четвёртой (если без закуски) говоришь: «Слышь, sendmail, ты это...давай письмо, я пойду, сам отнесу...» :-)

DeVliegendeHollander ★★
()

Тяжело прочитать всю новость, скажите - там .NET Framework какой версии, перешли они уже на 4.5?

queen3 ★★★★★
()
Ответ на: комментарий от alex-w

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

Проблемы наступят с вероятностью ~100%? Откуда этот младенческий страх перед неизвестностью? О, как нам приятно ковыряться в песочнице, огражденной деревянным уступом! К нам никто не заходит и не диктует новых правил.

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

А выпилить systemd вообще, например из SuSe можно?

Спросите у мейнтейнеров SuSE.

свежеустановленная SuSe при попытке запуска virt-manager начала ругаться

Дистропроблемы.

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

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

... и только аналитики с ЛОР знают, как развивать Linux.

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

А когда будет systemd-vim для редактирования конфигов?

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

удалить можно давно

man nsswitch.conf

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

объем кода

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

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

А теперь сравни объем кода в /sbin/init и systemd.

А теперь сравни объем кода в LibreOfficeWriter и Abiword.

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

Не забудь только, раз уж собрался весь системд смотреть, добавить весь свой OpenRC или что там + мусор из шеллскриптов в /etc/init.d/. А потом умножь на 2, потому что баш где-то наравне с перлом по читаемости и с пхп по обработке ошибок.

anonymous
()

Всё-таки они молодцы - правильно использовали GPT и можно нафик повыкидывать fstab, правильно настроили networkd и туда же отправляется interfaces. Лепота - чем меньше файлов, тем меньше шанс в них напортачить.

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

объем кода

Проблемы тех, кто в этом копается.

И тех, кто понимает, что вероятность возникновения проблем прямо пропорциональна количеству/сложности кода.

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

Людей заставили выбросить лук и колчан и взять мушкет.

Ага, пуля - дура, штык - мужик! Главный девиз линупсоидов!

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

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

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

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

С таким подходом разработку ядра можно было забросить лет 10 назад.

cipher ★★★★★
()

Клиент DHCPv4 теперь поддерживает получение от сервера статических маршрутов.

а они быстрые, да. Глядишь, через пару релизов и ntp-сервер станет можно передавать? Или в системд нтп не нужен?

leave ★★★★★
()
Ответ на: комментарий от alex-w

Просто поверь, что Кен Томпсон получше тебя в этом разбирается.

Вся суть линукс-фундаментализма.

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

Прискорбно осознавать, что Debian тоже вляпался в эту дрянь...

Используйно stable. Кстати новые версии вроде можно пересобрать без systemd.

zorg ★★
()

некоторые субъекты в этой теме высказываются неодобрительно в сторону хейтеров...

А я вам объясню причину хейта (хотя на самом деле это осуждение, но НЕ ненависть):

Существует философия UNIX. Кто о ней не знает - могут загуглить. Современные UNIX-подобные системы (в т.ч. linux) отчасти её унаследовали, и адекватные программисты стараются соблюдать эту философию до сих пор. Собственно, построение системы наследую эту философию есть ГЛАВНОЕ отличие её от Windows.

А что же делает ув. Леннарт? Вы немного подождите, и его будут ставить в пример в M$. Нормально ли будет, если я вдруг начну писать темы с виндопроблемами-виндопроблемушками? Сразу на винфак пошлют - и будут правы.

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

... и только аналитики с ЛОР знают, как развивать Linux.

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

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

А что же делает ув. Леннарт?

Пишет код.

Вы немного подождите, и его будут ставить в пример в M$.

Старые бородатые админы? Да кто их спрашивать-то будет? А потом как всегда победит более безпроблемный инструмент.

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

А что же делает ув. Леннарт? Вы немного подождите, и его будут ставить в пример в M$. Нормально ли будет, если я вдруг начну писать темы с виндопроблемами-виндопроблемушками? Сразу на винфак пошлют - и будут правы.

Пиши о чем хочешь, от этого твоя писанина ни интереснее, ни умнее не станет. К сожалению. Если у микрософт 2х2=4, то надо сделать все, чтобы в линуксе было 2х2=3?

Почему на лоре столько олухов царя небесного?

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

К сожалению

да ты мой фанат! люблю тебя ^^

Если у микрософт 2х2=4, то надо сделать все, чтобы в линуксе было 2х2=3?

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

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

Пишет код.

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

Старые...

Ты не понял моего выражения, я для тебя его перефразирую:
«в Microsoft его будут ставить в пример, вы немного подождите»

А потом как всегда победит более безпроблемный инструмент

ты о systemd-то? До него жили прекрасно, и проблем не было. Тут есть 2 варианта - либо ты считаешь NIH-синдром нормой (и потому дальнейший разговор бессмысленный), либо что-то другое (будет интересно услышать ЧТО именно).

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

Я сначала длительное время вручную мержил в этот файл новых системных пользователей, прилетающих с апдейтами, а потом писал автомерджер для этих целей. Поверь, я знаю, о чём говорю.

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