LINUX.ORG.RU

Выпуск systemd 213

 ,


0

4

systemd — система инициализации и менеджер служб для Linux, совместимые со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации, использует сокеты и активацию D-Bus для запускаемых служб, предлагает запуск демонов по необходимости, отслеживает процессы при помощи контрольных групп Linux, поддерживает мгновенные снимки и восстановление состояния системы, монтирование и точки монтирования, а также внедряет основанную на зависимостях логику контроля процессов сложных транзакций.

Основные изменения:

  • Новый демон «systemd-timesyncd» для синхронизации времени по сети. С целью упрощения реализованы лишь возможности SNTP-клиента, код не перегружен излишней серверной функциональностью. Демон запускается с минимумом привилегий и умеет взаимодействовать с networkd, чтобы работать только при наличии подключения к сети. Кроме того, он умеет периодически сохранять текущее время на жестком диске и при следующей загрузке сразу восстанавливает его, не дожидаясь начала очередной синхронизации. Это полезно для устройств, в которых отсутствуют часы реального времени (Raspberry Pi, встраиваемые устройства). Восстановленное при загрузке время будет не самым точным, но это лучше, чем ничего. При этом, требуется создание в системе отдельного пользователя и группы «systemd-timesync».
  • Отключена поддержка «seqnum» в libudev, поскольку, если устройства находятся в различных пространствах имён, их номера не будут последовательны.
  • Для «systemctl list-timers» и «systemctl list-sockets» добавлен ключ --recursive, отображающий юниты указанного типа для всех локальных контейнеров.
  • Служебные юниты получили новую директиву RebootArgument=, с помощью которой можно передать ядру аргументы для следующей перезагрузки, если перезагрузка осуществляется через использование StartLimitAction=.
  • Кроме того, этим же юнитам добавлена директива FailureAction=, через которую можно указать, какие операции будут выполнены в случае сбоя сервиса. Все это работает аналогично директиве StartLimitAction=, но в данном случае, указанные операции будут выполнены немедленно после первого же сбоя, а не после нескольких попыток перезапуска проблемного сервиса.
  • Утилита hostnamed теперь может работать с информацией об имени ядра, релизе и версии.
  • На графики, создаваемые утилитой bootchart, добавлены сведения cgroup.
  • Сервисы получили поддержку опции CPUQuota=, с помощью которой можно жестко ограничить в процентах потребление сервисом процессорного времени. Это значение не будет превышено, даже если процессор простаивает.
  • systemd-networkd обучен поддержке IPIP и SIT-туннелей.
  • Скриптам инициализации LSB добавлена зависимость от network-online.target, вместо network.target. За счёт этого, их поведение становится более похожим на то, каким оно было в SysV.
  • Добавлена поддержка опции ядра fsck.repair=, которая определяет, что fsck сделает при загрузке с некорректно отмонтированными файловыми системами.
  • Парсер конфигов (.ini) теперь игнорирует разделы, имена которых начинаются с «X-». Это открывает дорогу к созданию в конфигах специфичных разделов для нужд других приложений.
  • machined получил новый API для запроса IP-адресов зарегистрированных контейнеров.
  • Добавлен новый вызов call sd_uid_get_display(), позволяющий запросить информацию об основной сессии пользователя. Основная сессия выбирается из числа всех сессий. Например, графическая сессия будет предпочтена текстовой.
  • У systemd-networkd появился компаньон — крохотный демон systemd-resolved, который вносит изменения в resolv.conf, основываясь на конфигурации DNS для сетевых интерфейсов. В будущем, сюда добавят локальный кэш DNS и mDNS с поддержкой DNSSEC.
  • Включена по умолчанию утилита systemd-networkd-wait-online, которая вносит задержку в network-online.target до того момента, пока не будет настроено подключение к сети.
  • Две новых опции: StartupCPUShares= и StartupBlockIOWeight=. Они работают аналогично CPUShares= и BlockIOWeight=, но только при загрузке системы.
  • hostnamed теперь предпочитает брать имя хоста из /etc/hostname, если оно там указано, а не через DHCP. В systemd, параметры, определённые локальным администратором, традиционно имеют больший приоритет, чем любые другие.

>>> Подробности

anonymous

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

Вот честно, было бы время, потратил бы на полное перепиливание всех основных частей systemd с вызовов linux на адовые врапперы (типа, чтобы узнать, что подмонтировано, system(«/sbin/mount») и парсится, выпиливанием всего, связанного с init - чтоб всегда был exit(0) и запиливанием совместимости со всеми init системами.

Вопрос - зачем? Чтоб gnome3 на чём угодно работал. Это показало бы ненужность.

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

минимально необходимый, но далеко не достаточный, набор sysvinit оказывается размером практически с «монструозного» systemd, раскинувшего свои щупальца далеко за пределы системы инициализации.

При всей избыточности для системы инициализации, systemd не имеет и в половину столько же функционала, как bash+coreutils

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

Банальное перетаскивание пачки серверов к другому хостеру. Случайный старый IP в одном из конфигов редкоиспользуемого демона не сразу обнаружишь.

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

При всей избыточности для системы инициализации, systemd не имеет и в половину столько же функционала, как bash+coreutils

1. Этот функционал практически не имеет отношения к системе инициализации.
2. Это лишний раз подтверждает мой тезис, что sysvinit — забивание гвоздей микроскопом. Чрезвычайно мощные инструменты (bash, grep, sed, awk) задействуются для решения пустяковых, в общем-то, задач.
3. При большом желании и добавлении bash или любого другого языка программирования и на systemd можно сделать всё, что угодно. ExecStart=/my/perverted/script никто не отменял.

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

2. Это лишний раз подтверждает мой тезис, что sysvinit — забивание гвоздей микроскопом. Чрезвычайно мощные инструменты (bash, grep, sed, awk) задействуются для решения пустяковых, в общем-то, задач.

Это скорее похоже на ситуацию, когда на камаз ставят крановую установку и получается, что функция «грузить», предшествующая функции «ехать», реализуется средствами, предназначенными в основном для функции «ехать».

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

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

При всей избыточности для системы инициализации, systemd не имеет и в половину столько же функционала, как bash+coreutils

Собственно я имел в виду, что вот так сравнивать сложность систем и кода по размерам исходников нельзя по 2 причинам:

1)это не коректно и ни на чём не основано

2)у них слишком разные задачи, и в них реализовано разное количество разного функционала.

И если уж сравнивать, то bash+coreutils и компактней, и функционала в нём больше.

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

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

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

редкоиспользуемого демона

Ещё одно внезапно?

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

она состоит из bash-скриптов, которые всего лишь выполняют нужные в процессе загрузки действия

Или не выполняет. Или выполняет ненужные. Или выполняет неправильно. Кто этих скриптописателей разберёт, программистов среди них обычно не водится. И сервисы толком перезапустить нельзя — попробуй поменять ip в конфигах и перезапустить network, всякие сквиды/апачи тут же отвалятся, потому как они-то не перезапустятся.

А systemd это попытка заменить собой много демонов, служб и т.д.

Ну например, где эти «много»? Для справки — всякие timesyncd ни разу заменой ntpd не являются.

И ещё вмешаться в их взаимодействие

Что? Пример, пожалуйста.

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

В том же дебиане 8 установка пакета systemd (который нужен по зависимостям тому же Гному 3) никак не сказывается на системе инициализации. Никого никак заставлять не надо, пользуйся любой из трёх доступных официально систем инициализации (systemd, sysvinit, upstart). А если брать системы, где только systemd доступен, так там и так нельзя использовать другую систему инициализации, хоть с Гномом, хоть без Гнома.

redgremlin ★★★★★
()

Отличные новости!

Уже одно то, что появление данного проекта во всех основных дистриюутивах GNU/Linux вызывает лютый баттхёрт у бздунов, говорит в его пользу :)

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

Что? Пример, пожалуйста.

Плохо, или нет, но я не использовал больше суток дистрибутивов с systemd

Но в том же дебиан 8, даже если опционально не ставить systemd, даже если использовать только chroot, а не полную систему, приходится искать и убивать малопонятные, однозначно не нужные дополнительные компоненты systemd, которые начинают управлять питанием и монтировать диски.

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

Чрезвычайно мощные инструменты (bash, grep, sed, awk) задействуются для решения пустяковых, в общем-то, задач.

С тем же успехом можно сказать, что «чрезвычайно мощный инструмент - Си» используется для решения пустяковых задач %)

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

С тем же успехом можно сказать, что «чрезвычайно мощный инструмент - Си» используется для решения пустяковых задач %)

Если бы компилятор запускался при каждом вызове любого компонента systemd, можно было бы. Но он запускается один раз и в нормальном случае (не source-based) не на машине пользователя. Рисованные спрайты HoMM1 и пререндеренные спрайты HoMM3 при использовании не отличаются, в отличие от картинки HoMM5, где тот же рендеринг уже в реалтайме идёт.

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

тем больше systemd напоминает мини-BSD - некое едино разрабатываемое ядро операционной системы.

не ставится задача сделать универсальную ОС, а только центральную системную часть

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

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

С тем же успехом можно сказать, что «чрезвычайно мощный инструмент - Си» используется для решения пустяковых задач %)

Если бы компилятор запускался при каждом вызове любого компонента systemd, можно было бы

Причем здесь запуск sh? Этот оверхед уже очень давно ни на что не влияет (см. заявления поцеринга «systemd is not about speed»), но дает дополнительную гибкость.

Рисованные спрайты HoMM1 и пререндеренные спрайты HoMM3

...не имеют вообще никакого отношения к теме.

tailgunner ★★★★★
()

оно по прежнему (на пару с сислогд) крашит систему при гибернейте. а если это проделать на «рекомедованной» (те никакой) разибивке диска на разделы то с вероятностью около 0.5% при очередном восстановлении получите кашу в файловой системе.. а если не дай бог вы еще и шифрованные разделы используете...

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

Десктоп стоит дома и втыкается в роутер - накой ему ntpd и networkmanager?

ну дык не ставь ntpd и networkmanager, в слаке это отдельные пакеты которые ставить не обязательно.

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

по твоему crond это overkill? А ничего, что кроме бекапа даже на десктопе нужно делать logrotate и updatedb? Зачем сущности плодить?

Вообще, чем дальше, тем больше systemd напоминает

windows

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

А systemd-mailclient когда будет? Люди ждут же!

Это полумеры. Сейчас нужен, как минимум, systemd-skype-im.

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

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

Компилятор должен запускаться 1 раз, при сборке программы.

Но тут не программа обсуждается. Это как раз тот случай, когда преимущества гибкости от интерпретируемых скриптов могут быть ценнее, чем скорость. Думаю следует убрать в сторону фаллометрию «наша инновационная система в некоторых случаях на некоторых конфигурациях оборудования позволяет загрузить систему за 4 секунды... Разумеется это не относится к 95% систем с медленными ssd или любыми hdd, но ведь позволяет же!»

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

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

я активный пользователь freebsd из-за systemd
если бы systemd имел бы systemdconfig - я бы еще потыкал, но хер там - тупой монолитный кусок, который засирает /

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

Слегка не в тему, но

дает дополнительную гибкость

Этому подтреду нехватает

Powerful
adj.

An attribute of programming environments or their individual features, most often Turing tar pits. A feature is «powerful» when at least one of the following holds:

  • It can be used to implement something trivial in an pointlessly complicated way.
  • It can cause a lot of damage.

Shell scripts. A crippled everything-is-a-process-unless-it's-a-string VM. Debugging clearly wasn't on the list of Useful Activities which the shell was meant to support. «rm: Is a directory». Gotta love that. Of course people write huge shell scripts. One excuse is that they want to modify env vars in the user's shell, and «only a shell script can do that» (wrong - you can use eval `sane-prog` instead of source insane-shell-script). A particularly awesome kind of shell script is the multi-kilobyte one-liner (find | grep | awk | grep -v | fuck-off-and-die).

Вообще, цена за гибкость — недетерминированность и сложность анализа. То, что баш сам по себе не лучший язык для этой задачи — тема отдельного срача (если защитники баша, видевшие тот же openrc, вообще найдутся).

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

у тебя 3 из 3 сообщений имеют слово windows ты латентный виндузятник, забанься плиз, не мешай юникслайководам

я бывший виндузятник. А ты? Как мои дети, ничего кроме Slackware Linux не видел, да? Ну тогда тебе повезло с отцом.

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

Думаю следует убрать в сторону фаллометрию «наша инновационная система в некоторых случаях на некоторых конфигурациях оборудования позволяет загрузить систему за 4 секунды... Разумеется это не относится к 95% систем с медленными ssd или любыми hdd, но ведь позволяет же!»

дополню, что голая слака грузится с SSD тоже за секунду. И bash скрипты этому никак не мешают.

emulek
()

надеюсь после обновления ничего не отвалится

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

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

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

Получается такой странный vendor-lock в мире свободного ПО.

А то, что ты десятки лет сидишь на одних и тех же GNU/BSD утилитах, которые зачастую разрабатывают одни люди и которые хостятся в одних репозитариях, - это значит не вендор-лок, ага? =)

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

Ненависный? Ни в коей мере. Он меня просто немного пугает.

Пугает своими безконечными «до основанья, а потом!» А я как-то устал от этого. Хочется хоть какой-то стабильности. Плана развития, а не «что получится».

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

В итоге появился уродец, которые defective by design и сам по себе является костылём.

если бы не идиоты это делали

Поцеринт не знает, что такое проектирование

Квазар, ты балбес. Что можно сказать об экосистеме, если, по твоим словам, ее одной левой уделывает костыль от неграмотных идиотов? Об экосистеме, с которой люди бегут, быстрее расхватывая в свои дистрибутивы кривые поделки от Поцеринга? Правильно - можно сказать, что такая экосистема - никому ненужное еще более кривое говно. Это все исходя из твоей же логики =) Давай, начинай нести про кровавый Red Hat и жидобандеровцев в совете Дебиана.

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

С core-utils немного другая ситуация. Они более-менее независимые, вылизанные и простые. Майнтернеры / разрабы меняются, а утилиты остаются.

С Лёней же. Ну что с ним? Написал гигантский комбайн. В котором, скорей всего и он сам скоро уже разобраться не сможет. Если он его забросит, то пиши — пропало.

Так же как и с ReiserFS. Пока «жив» разраб. Всё ещё более-менее. А как «сдувается», так сразу время писать что-то новое, следующее, пока тоже не сдуется. Комьюнити как такового нет же! Есть 1 разраб и мульёны мухпотребителей. А ты тут про какую-то мифическую «экосистему».

Это-то мне и под-надоело. Череда «студентов» пишущих манну небесную, которая умирает с ними же.

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

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

anonymous
()

менеджер служб для Linux

Всё... теперь службы и в моём линупсе. No way.

h4tr3d ★★★★★
()

А, всё, я понял.

Они хотят переписать весь GNU стек приложений и хотят, что бы называли не GNU/Linux, а Systemd/Linux.

Я раскрыл жидомассонский заговор.

h4tr3d ★★★★★
()

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

anonymous
()

С целью упрощения реализованы лишь возможности SNTP-клиента, код не перегружен излишней серверной функциональностью

systemd

awesome.jpg

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

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

Но она от этого не перестаёт быть костылём. «Почему?» - спросите Вы? А почему, например, Вы (и Поттеринг) решили, что только сеть может медленно взлетать?

Если уж начали впихивать событийную модель, куда надо и куда не надо, то будьте любезны, сделать эту модель функциональной. И у любого сервиса в такой парадигме возникают состояния (навскидку, не особенно думая): «до старта», «стартовал», «функционирует штатно», «приостановлен», «завершился», «завершился аварийно». И в таком случае сервисы можно будет не учить «самостоятельно следить за сетью» (Нафейхоа?! Далее нецензурно!), а вязать их в сети строго при помощи настроек инит-системы.

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

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

Там проблема чуть более хитрая.

У меня nginx на локалхосте работает в качестве apt-cachе, кэшируя прилетающие через apt пакеты (нужно для убыстрения сборки в песочницах). Соответственно, в момент старта он пытается разрезолвить апстримы. А резолвер ещё не доконфигурирован, и нгинксу в этот момент становится грустно, он отчаливает на старте.

Как полечить эту проблему я, в принципе, знаю (достаточно, например, вместо http://upstream.host.org вписать IP-адрес или принудительно указать резолвер). Однако, все эти ужимки, по моему мнению, свидетельствуют ровно о том, что где-то чего-то не додумано.

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

А так Gentoo УЖЕ на systemd. В качестве альтернативы она полностью поддерживается, как и родной openrc. Единственное, что мешает появлению stage3 с systemd, — нехватка людских ресурсов.

Точнее вменяемость майнтейнеров. А также наличие прекрасно работающего eudev.

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

стандартные sysvinit-скрипты

понимают все иниты

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

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

Это как раз тот случай, когда преимущества гибкости от интерпретируемых скриптов могут быть ценнее, чем скорость

«Гибкость» - это необходимость костылять весь базовый функционал системы инициализации (зависимости, запуск/остановка/перезапуск, взаимодействие сервисов, получение статуса) на не предназначенном для этого инструментарии? Зато гибко, вместо старта демона можно рпгшку или тетрис запустить, прецеденты рпгшки на баше и тетриса на седе были.

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

«Гибкость» - это необходимость костылять весь базовый функционал системы инициализации (зависимости, запуск/остановка/перезапуск, взаимодействие сервисов, получение статуса) на не предназначенном для этого инструментарии?

Гибкость это не только возможность сделать костыль из сверхпластичного композита, который можно гнуть и скручивать как душе угодно, но и возможность использования одного инструментария для решения задач, как настройки и администрирования системы, так и задач повседневного пользования. А поскольку coreutils и bash/sh/zsh/... все равно будут в системе, то смысл в монстроподобном systemd просто теряется. Для инициализации системы вполне подходят sysvinit или openrc

прецеденты рпгшки на баше и тетриса на седе были.

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

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

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

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