LINUX.ORG.RU

Релиз systemd 257

 


0

2

Вышла новая версия свободного системного менеджера systemd.

Нововведения:

  • Изменения, нарушающие обратную совместимость:

    • Переработана логика обработки ключа --purge компонента systemd-tmpfiles: теперь удалению подвержены только те пути из tmpfiles.d/, которые помечены флагом $.

    • Поддержка cgroup v1 по-умолчанию отключена; для того, чтобы принудительно включить ее, нужно передать systemd параметр SYSTEMD_CGROUP_ENABLE_LEGACY_FORCE=1 через командную строку ядра.

    • Символические ссылки /dev/disk/by-id/nvme-*, для которых не указан NVMe неймспейс, теперь указывают на неймспейс 1; ссылка не будет создана, если неймспейс 1 не существует.

  • libsystemd:

    • json API, предоставляемый libsystemd, доступен как публичный интерфейс с именем sd-json.

    • Также libsystemd предоставляет интерфейс sd-varlink, реализующий IPC varlink.

    • sd-dbus предоставляет метод sd_bus_pending_method_calls(), возвращающих количество открытых асинхронных вызовов для указанного соединения.

    • Интерфейс sd-device получил новый метод sd_device_monitor_is_running(), который позволяет узнать, активен ли указанный объект monitor.

  • Инициализация системы и управление сервисами:

    • Теперь переменная REMOTE_ADDR может хранить адрес не только IP, но и UNIX сокетов.

    • .socket юниты поддерживают протокол Multipath TCP.

    • Упрощен алгоритм инициализации системного времени.

    • x-systemd.wants=, новая опция /etc/fstab, позволяет указывать зависимости типа Wants.

    • Параметр RestartMode= поддерживает значение debug: в случае аварийного завершения работы демон будет перезапущен в режиме отладки.

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

★☆

Проверено: CrX ()
Последнее исправление: Dimez (всего исправлений: 6)

Поделитесь опытом - судя по его возможностям, это можно использовать как систему централизованного управления конфигурациями?

delidov_george
()

Нужно, годно, хорошо.

Дежурно напоминаю, что вопящим про неюниксвейность systemd следует обратить свой взор в man inittab, чтобы обнаружить там кейворды wait, once, powerfail и respawn, которые четко показывают, что init задумывался как средство для спауна и слежения за процессами, а баш-лапша была навернута поверх него позже, потому что изначальный init получился слишком дубовым. Так что systemd - это не более чем развитие идей, изначально заложенных в SysV init.

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

Дежурно напоминаю, что вопящим про неюниксвейность systemd следует обратить свой взор в man inittab

Да. Открывал этот ман в виртуалке с Ubuntu 4.10, ЕМНИП. Про перезапуск демонов с случае аварийного завершения, например, там было написано прямо.

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

вопящим про неюниксвейность systemd следует обратить свой взор в man inittab, чтобы обнаружить там кейворды wait, once, powerfail и respawn, которые четко показывают, что init задумывался как средство для спауна и слежения за процессами

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

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

systemd кроме спавна процессов еще лезет настраивать сеть, резолвить адреса, писать журналы и вообще и жнец и швец

Время идет, мантры хейтеров не меняются

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

лезет настраивать сеть

Этим занимается networkd.

резолвить адреса

resolved

писать журналы

journald

И так далее. Всё это - отдельные демоны, которые общаются между собой по dbus. Кстати, networkd можно использовать отдельно от systemd и наоборот.

почему это делает запускалка сервисов а не сервис управления системным временем?

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

Ты неправильно думаешь о systemd, как о запускалке сервисов. Это системный менеджер, который отвечает за то, чтобы ОС работала правильно и консистентно: запускает, проверяет, обеспечивает реакцию на события, оповещает о них, и так далее. Init задумывался этим, просто недожали, и в итоге все функции были возложены на портянки шелл-скриптов, что само по себе уже - говно. По недоразумению эти скрипты превратились в полноценные сложные программы, но при этом написаны на уродливом языке с отсутствующей типизацией. Теперь эти авгиевы конюшни приводят в порядок.

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

Казалось бы: безобидная шутка, но и в ней увидели политоту.

Политоту везде можно увидеть, если очень сильно захотеть.

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

Так что systemd - это не более чем развитие идей, изначально заложенных в SysV init.

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

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

В моем программистском детстве вместо доллара на клавиатурах был символ клопа раздавленного (этакий нолик с четырьмя рожками, см. тут — https://habr.com/ru/companies/timeweb/articles/706422/). И в знакогене терминала ДВК и 85ки, кстати, тоже. ВАс это, может быть, порадует :)

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

SystyemD не управляет конфигурацией, он исполняет имеющуюся.

Сам на эту тему давно думаю, и прихожу к выводу, что нет. Все эти юниты systemd глубоко локальны и попытки их как-то централизовано хранить и заливать мне не известны. Впрочем, к SystemV init это тоже относится. Возможно, для всяких там Ansible и SaltStack что-то и придумали, но мне про это ничего не известно. Вообще, линуксу категорически не хватает средств централизованного управления.

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

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

Вот было бы логическим продолжением systemD наличием API для такого функционала. Нет ничего плохого в подобном «комбайне», если он решит задачи. Ansible и SaltStack - это вобщем-то тоже API (судя по hh.ru) и они даже стандарты.

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

В учебниках по биологии пишут, что человек на 60% состоит из воды.

А твой комментарий состоит из воды на все 100%. По существу есть что возразить?

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)

реализующий IPC varilink.

Этот varlink – это что-то значимое? Или можно спокойно не вникать в очередную проходную технологию?

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

У нас принято говорить непонятно перед заказчиком. Так больше стоимость

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

Достигнута очередная вѣха въ разработкѣ свободнаго системнаго распорядителя systemd.

Либо крестик сними, либо трусы надень.

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

SystyemD не управляет конфигурацией, он исполняет имеющуюся.

Сам на эту тему давно думаю, и прихожу к выводу, что нет. Все эти юниты systemd глубоко локальны и попытки их как-то централизовано хранить и заливать мне не известны. Впрочем, к SystemV init это тоже относится. Возможно, для всяких там Ansible и SaltStack что-то и придумали, но мне про это ничего не известно.

В ансибле есть модули для управлениями юнитами systemd - можете создавать и конфигурировать их как пожелаете.

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

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

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

Кстати, networkd можно использовать отдельно от systemd и наоборот.

Только зачем?!

Всё это - отдельные демоны, которые общаются между собой по dbus.

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

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

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

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

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

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

Только зачем?!

Что именно зачем? Зачем запускать сервисы или зачем управлять сетью?

Я бы лучше с нуля собрал то что мне нужно

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

чем выковыривать то что не нужно

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

Вкусовщина

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

каждый со своим форматом конфигов

Большая часть конфигов - обычные INI. Всякие tmpfiles используют собственные построчные форматы для простоты парсинга и дополнения, в том числе фанатами шелл-скриптов. Всё хорошо документировано и описано в соответсвующих манах.

как только задача выходит за рамки «запусти@перезапусти» приходится в это закапываться все

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

И я не разу не сталкивался с проблемами с шелл-скриптами из-за того что это шелл-скрипты.

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

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

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 3)
За линукс мы пьём
прошлым дням наш зачот
скоро бак самогона
совсем притечёт
Set440
()
Ответ на: комментарий от liksys

«Системнаго» — тоже заимствование из греческого.

CrX ★★★★★
()

Мне нравится, как чел в комментах сам придумал повод для срача и сам теперь активно срач поддерживает. Хотя казалось бы. Релиз минорота, интересных фич не завезли, чо его обсуждать.

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

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

По сути до Лени Потного начало доходить, что dbus нафиг не нужен для межпроцессного взаимодействия в сустемд. Это после того как всякие бездари типа @hateWin с @intelfx тут годами затирали, что dbus абсолютно необходим потому что содержит некие супер-пупер фичи, без которых вообще никак и никуда.

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

бездари типа @hateWin с @intelfx тут годами затирали

Да-да, мы тупые, а ты гений. Лучше расскажи, что Поттерингу было делать 14 лет назад, когда dbus уже был стандартным IPC в линуксе, а varlink не было и в помине (он был анонсирован только в 2017 году)? Он должен был нагородить свой велосипед просто ради удовлетворения воспаленного чувства прекрасного у всяких там @Lrrr?

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

Да. В 255, емнип, завезли новый механизм спаунинга демонов, вместо связки fork()+exec(). В этом релизе какой-то новый IPC добавили, о котором лично я впервые слышу. Надо разобраться, что это за зверь такой, и в чем вообще его идеология

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

Кажется, начинает доходить. В качестве транспорта эта хрень использует стандартные TCP или UNIX сокеты. Более того, эта приблуда не нуждается в сервере как таковом, в отличии от dbus; достаточно просто подключить нужную библиотеку и создать сокет. За счет сочетания этих качеств, varlink может быть доступен с самого начала, сразу после загрузки ядра и запуска PID 1, и при этом ему не нужна отдельная ядерная подсистема, как в случае с KDBUS.

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

А главное, я не пойму, чем ты возмущаешься. Когда в одном из тредов ты заявил о ненужности dbus и о возможности запилить IPC прямо на сокетах, я тебе возразил. Суть моего возражения была в том, что dbus — это готовый, стандартный и обкатанный протокол, а в случае с голыми сокетами тебе придется изобретать свой протокол с нуля. В ответ ты просто назвал меня макакой и свалил. А теперь ты предлагаешь varlink в качестве идеальной замены DBUS, при том, что varlink, — сюрприз, сюрприз! — является тем самым самодельным протоколом поверх сокетов. Не видишь ли ты противоречия в собственных словах?

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

Полагаю, что это породит больше проблем, чем решит существующие. Непонятно, как аутентифицировать изменения. Такие штуки надо делать только если есть что-то типа linux-домена.

Ansible и SaltStack - это вобщем-то тоже API (судя по hh.ru) и они даже стандарты.

Не совсем так. Это инструменты для выполнения команд (сценариев, программ. whatever) сразу на нескольких целевых системах с возможностью проверить статус исполнения на каждой. А стандартами они стали только в мире девопсов.

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

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

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

Нет, тебе скорее etcd надо смотреть в паре с ansible

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

Да на всех советских копмпах, походу. На ЕС-ке, по моему, тоже. На БЭСМ-6 не помню, совсем зеленый был тогда. И мапился на ASCII 0x24.

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

Да на всех советских копмпах, походу. На ЕС-ке, по моему, тоже. На БЭСМ-6 не помню, совсем зеленый был тогда. И мапился на ASCII 0x24.

Потому что доллар – это бакс. А бакс – это козёл. А козёл – это такая конструкция:

\ /
 o
/ \

Козёл для пилки дров (проф.: ко́злы).

thegoldone ★★
()
Ответ на: комментарий от Lucky
Род людской иным не стал, не убеждайте, не поверю.              
Взять хоть тех троих, что вон высоковольтный тянут кабель.      
Первый ликом Авель вылитый, другой подобен зверю,               
Третий даже негр, и каждый разложим на сотни мелких капель.     

        Эй! Кому там тесно          
        В траншее? Вон ты!          
        Мне про тебя все известно:  
        Ты состоишь из воды!

(Михаил Щербаков)
gns ★★★★★
()
Ответ на: комментарий от hateWin
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.