LINUX.ORG.RU

systemd 216

 , ,


1

2

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

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

  • timedated больше не читает имена юнитов реализации NTP из /usr/lib/systemd/ntp-units.d/*.list. Альтернативная реализация NTP добавляет
    Conflicts=systemd-timesyncd.service
    в их юнит-файлы, заменяя собой функциональность NTP systemd по умолчанию.
  • systemd-sysusers получила новый тип строки «r» для настройки того, из каких диапазонов UID/GID выделять системных пользователей/группы. Строки типа «u» теперь могут добавлять дополнительную колонку для обозначения домашней директории создаваемого пользователя. Кроме этого, systemd-sysusers теперь может опционально считывать пользовательскую информацию из STDIN вместо файла. Это полезно вызове её из предустановочных скриптлетов RPM, которым нужно создать пользователей перед установкой первого файла RPM, так как этим файлам может требоваться владение этими пользователями. Новый макрос RPM %sysusers_create_inline представлен именно для этой задачи. systemd-sysusers теперь обновляет теневые файлы наряду с базами пользователей/групп, что улучшает совместимость с некоторыми инструментами, например, grpck.
  • Ряд шинных API PID 1 теперь опционально запрашивает у PolicyKit, предоставить ли доступ считающимся непривилегированными клиентам при определённых условиях. Имейте в виду, что интерактивная аутентификация в данный момент пока не поддерживается, но в конечном счёте ожидается добавление и её.
  • /etc/machine-info теперь обладает новыми полями для настройки среды развёртывания машины, а также месторасположения машины. hostnamectl обновлён и снабжён новой командой для обновления этих полей.
  • systemd-timesyncd обновлён до автоматического запроса информации о NTP-сервере у systemd-networkd, который можно обнаружить по DHCP.
  • systemd-resolved теперь включает распознаватель заглушек кэширования DNS и полную реализацию разрешения имён LLMNR. Добавлен новый модуль NSS «nss-resolve», позволяющий использовать собственный «nss-dns» glibc для обнаружения имён хостов через systemd-resolved. Имена хостов, адреса и произвольные RR'ы можно распознавать через D-Bus API systemd-resolved. В отличие от внутреннего распознавателя glibc, systemd-resolved умеет работать с многодомными системами и удерживает DNS-сервера и кэши отдельно и поинтерфейсно. Запросы посылаются одновременно на все интерфейсы, имеющие настроенные DNS-сервера, для корректной обработки VPN и локальных LAN, которые могут распознавать отдельные наборы доменных имён. systemd-resolved может запрашивать информацию о DNS-серверах у systemd-networkd автоматически, который, в свою очередь, может находить её по DHCP. Нововведённый инструмент «systemd-resolve-host» можно использовать для запроса логического DNS у resolved. systemd-resolved реализует IDNA и автоматически использует IDNA или кодировку UTF-8 в зависимости от того, используется ли в качестве транспорта классический DNS или LLMNR. В следующих выпусках планируется добавить в systemd-resolved реализацию DNSSEC и mDNS/DNS-SD.
  • Добавлен новый модуль NSS nss-mymachines, автоматически распознающий имена всех локально зарегистрированных контейнеров по соответствующим IP-адресам.
  • Добавлен новый клиентский инструмент для systemd-networkd — «networkctl». В настоящий момент он полностью пассивен и запрашивает сетевую конфигурацию у udev, rtnetlink и networkd, предоставляя её пользователю дружественным способом. В будущем планируется расширить его до полноценной утилиты для управления networkd.
  • .socket-юниты получили новую настройку DeferAcceptSec=, управляющую sockopt ядра TCP_DEFER_ACCEPT для TCP. Аналогично, для управления TCP Keep-Alive добавлены KeepAliveTimeSec=, KeepAliveIntervalSec= и KeepAliveProbes=. Также поддерживается отключение алгоритма Nagle для TCP (NoDelay=).
  • logind обучен новому типу сессий «web» для использования в проектах наподобие Cockpit, регистрирующих web-клиентов как PAM-сессии.
  • Юниты-таймеры с как минимум одной настройкой OnCalendar= теперь будут запускаться только после достижения timer-sync.target. Таким образом, они не будут проходить перед подстройкой системных часов локальным NTP-клиентом или чем-то подобным. Отчасти это полезно на встраиваемых системах без RTC, запускающимся со сбитыми системными часами.
  • Ключ systemd-nspawn --network-veth= теперь приводит к стабильным MAC-адресам как на внешней, так и на внутренней стороне соединения.
  • systemd-nspawn получил новый ключ --volatile= для запуска экземпляров контейнеров с незаполненными /etc или /var.
  • Клиентский код kdbus обновлён для использования новой подсистемы Linux 3.17 memfd вместо старой, kdbus-специфичной.
  • DHCP-клиент и -сервер systemd-networkd теперь поддерживают FORCENEW. Также есть новые параметры конфигурации для настройки клиентского идентификатора поставщика и режима вещания для DHCP.
  • systemd больше не будет уведомлять ядро о текущем часовом поясе, так как это в любом случае неверно и колоритно, поскольку ядру неведом DST и подобные понятия. Как следствие, временные метки FAT будут всегда считаться UTC, примерно как это уже делает Android. Помимо этого, когда RTC настроены на локальное время (отличное от UTC), systemd никогда не будет синхронизировать их обратно, так как это может смутить Windows при последующей загрузке.
  • systemd-analyze получил новую команду «verify» для оффлайн-валидации юнит-файлов.
  • systemd-networkd получил поддержку парочки дополнительных настроек для слития настроек сети. Также теперь можно настраивать метрику статично настроенных маршрутов. Для сетевых интерфейсов в случае необходимости можно настроить IP-адрес пира.
  • DHCP-сервер systemd-networkd больше не будет запрашивать вещание по умолчанию, так как это роняло некоторые сети. Для оборудования, где вещание необходимо, возможность можно включить обратно с помощью RequestBroadcast=yes.
  • systemd-networkd теперь задаёт адреса IPv4LL (если включено) даже если DHCP успешно настроен.
  • udev теперь по умолчанию отдаёт предпочтение именам сетевых устройств, предоставляемым ядром, если ядро указывает, что они предсказуемы. Это поведение можно изменить изменением NamePolicy= в соответствующем .link-файле.
  • Добавлена новая библиотека systemd-terminal, реализующая полную обработку и отображение TTY-потоков. Эту библиотеку планируется использовать в будущем для реализации подсистемы виртуальных терминалов целиком в пространстве пользователя, взамен текущей реализации в ядре.
  • Добавлен новый инструмент systemd-journald-upload для передачи данных журнала на удалённую систему с запущенным systemd-journal-remote.
  • journald больше не будет передавать все локальные данные другому запущенному syslog-демону. Это изменение сделано, поскольку rsyslog (являющийся на сегодняшний день наиболее широкоиспользуемой реализацией rsyslog) их больше не использует, и вместо этого вытягивает из журнала в свой собственный. Поскольку передача сообщений несуществующему syslog-серверу слишком затратна, было решено просто выключить её. Если у вас запущен syslog-сервер, отличный от последней версии rsyslog, эту опцию нужно снова включить (ForwardToSyslog= в journald.conf).
  • journald опционально поддерживает LZ4-компрессор для больших полей журнала. Этот компрессор работает намного лучше XZ, который использовался по умолчанию ранее.
  • machinectl теперь показывает IP-адреса локальных контейнеров, если знает их, плюс имя интерфейса контейнера.
  • Добавлен новый инструмент «systemd-escape», позволяющий легко экранировать строки для создания имён юнитов и т. п.
  • Сообщения sd_notify() теперь могут содержать новое поле ERRNO=, которое обрабатывается и сохраняется systemd, чтобы потом его можно было отобразить в выводе «systemctl status» для сервиса.
  • Добавлен новый компонент «systemd-firstboot», интерактивно запрашивающий для systemd наиболее базовую информацию (часовой пояс, имя хоста, пароль root) при первой загрузке. Ещё его можно использовать для предоставления этих вещей оффлайн в образах ФС, установленных в директории.
  • Сниппеты sysctl.d/ по умолчанию теперь выставляют net.ipv4.conf.default.promote_secondaries=1. Это позволяет не сбрасывать вторичные IP-адреса, когда первичные удалены.

>>> Источник

★☆

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

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

А теперь внимание объясни мне почему мои страхи напрасны

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

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

с различной скоростью выпиливают прочие

Дык среди умных нет дураков поддерживать всякое старьё, а среди крикливых дураков вроде тебя нет достаточно умных кто мог бы поддерживать.

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

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

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

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

Решения, работающие годами, обычно не валятся из-за смены системы инициализации. Если такое происходит, значит, либо решение недостаточно капитально было продумано, либо оно на самом деле не рассчитывалось на работу годами.

border-radius
()
Ответ на: комментарий от border-radius

Слушай, дружок, ты конечно молодец, что у тебя на локолхосте все работает и ты ударился в философию...

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

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

Плoxoму админу systemd мешает :)

Опа! Оказывается уже главное отличительное свойство хорошего админа - установить системд!

Администратор системд, а чо звучит! Полезная должность для предприятия ;)

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

Чтоб не выглядеть идиотом, научить внимательно читать

А смысл? Ты вот выглядишь полным дебилом и ничего, никто не париться.

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

Чувак, научись читать. Я про сервера не писал. Несколько лет в запасе есть - вопрос остро не стоит... а там будет видно... Может Лёне надоест и он кинет сабж (ну как пыш-пыш аудио) - глядишь лет через 5 до ума и доведут... ;) Или сабж сам развалится под тяжестью... или ишак или эмир...

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

научить внимательно читать

А смысл?

Мдя... Классический системд-фанбой...

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

оно в федоре уже используется без костылей

gdm        899  0.0  0.0  44412  1956 ?        Ss   09:16   0:00 /usr/lib/systemd/systemd --user
paul      1210  0.0  0.0  44412  1972 ?        Ss   09:16   0:00 /usr/lib/systemd/systemd --user
root      2418  0.0  0.0  44412  1980 ?        Ss   10:01   0:00 /usr/lib/systemd/systemd --user
timuaz
()
Ответ на: комментарий от timuaz

Запускается-то запускается, но (почти) ни для чего не используется. И, судя по всему, пока не перестанут запускать по dbus-серверу на каждую иксовую сессию (== пока не впилят kdbus), использоваться так и не будет.

Я знаю, о чём говорю :)

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

«может... может... может...» у тебя бабский подход. хватит надеяться на может, иди вкалывать для своих целей либо они останутся мечтаниями.

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

Какие цели? Инит это цель? Вы не злоупотребляйте до обеда!

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

Забей.

Они упоротые...

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

:)

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

А я не хочу чтоб он у меня был установлен.

А мы-то здесь при чём? Может тебя ещё и на горшок посадить, а то вдруг сам не справишься?

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

Ну уот спискота, чё я наставил. Включено в итоге было не всё, но большинство.

от почтовика не приходят уведомления, пока он закрыт

А зачем его закрывать? Пускай висит в фоне и сообщения с лентами собирает.

третий развивается и становится всё вкуснее

Развивается он только в сторону упрощения дефолта. С т. з. расширяемости это хорошо, но вот с т. з. готовости...

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

пока не перестанут запускать по dbus-серверу на каждую иксовую сессию (== пока не впилят kdbus), использоваться так и не будет.

Именно так. С другой стороны kdbus не за горами, а там и xorg, wm и dbus сделают синглтонами для всех сессий текущего пользователя.

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

Гном без расширений нафиг не нужен.

Ложь, у меня нет расширений.

Но в нём и ими пользоваться толком нельзя

Еще одна ложь, я ими пользовался. хватить писать бредни.

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

Ну и? Это всё — *.device- и *.mount-юниты из system-instance.

Никаких нетривиальных использований systemd --user (т. е. использований его для запуска пользовательских долгоживущих приложений) на данный момент нет, за исключением экспериментов на локалхостах заинтересованных людей.

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

Ну уот спискота, чё я наставил. Включено в итоге было не всё, но большинство.

Тем не менее, можно комфортно жить вообще без расширений.

А зачем его закрывать? Пускай висит в фоне и сообщения с лентами собирает.

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

Развивается он только в сторону упрощения дефолта. С т. з. расширяемости это хорошо, но вот с т. з. готовости...

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

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

Это клёво, но вот я бы хотел, чтобы всё, что у меня сейчас форкает xfce-session запускалось systemd. Притом чтобы xorg запускался от моего пользователя, а screen и mpd оставались запущены даже после логаута.

В общем есть ещё куда расти :)

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

Запуск гуевых сессий експериментален, здесь вопрос скорее к мейнейнерам

Нифига, надо нормальный dbus, то есть kdbus. Кроме того нужна поддержка DE сессий. И то и другое это задачи разработчиков. И они над ними работают, так что всё будет, просто не сразу :)

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

Ты идиот

«Нет, ты.»

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

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

Кстати, что забавно, в жизни Леннарт крупнее, чем кажется на фотках. Высокий, длинные руки, крупные кулаки... Думаю большинству местных баттхёртеров он без проблем в грызло насовал бы :-D

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

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

MiniRoboDancer ★☆
() автор топика

Поведайте мне, учёные мужи, нахрена Лёнечкины рабы написали systemd-escape, если уже чёрт знает сколько лет существует uni2ascii? И зачем вообще ЭСКЕЙПИНГ в юнитах? systemd в 2017 году не может в utf8? Или я опять ничего не понимаю в этой жизни?

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

Идея в том, чтобы встраивать путь (со слешами) в имя файла (очевидно, без слешей). Слеши заменяются на дефисы — следовательно, дефисы заменяются на Си-подобные «\x2d». Ну и ещё @, . и некоторые другие метасимволы.

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

Ложь, у меня нет расширений.

Знач, ты упоротый минималист, которому от оболочки ни хрена не нужно. Зачем тогда жирногном? Опенбокса хватит.

я ими пользовался. хватить писать бредни

А гном обновлял?

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

Знач, ты упоротый минималист, которому от оболочки ни хрена не нужно.

Глупый вывод, так как минималисты пользуются всякими awesome/DWM. И гном я обновлял начиная с 3.8.

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

Умел бы он хотя бы в трей сворачиваться, было бы прекрасно

Для тундерптицы аддон есть.

веб-интерфейс удобнее

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

в сторону интегрированности, что есть хорошо

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

переключение между несколькими раскладками в последних версиях реализовано очень грамотно

А со стандартными иксовым не интегрируется. И оно уже научилось среднюю кнопку на два пальца вешать?

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

так как минималисты пользуются всякими awesome/DWM

В том-то и дело, что ты минималист, а пользуешься Огнелисом в мире DE. Зачем? Впрочем, Awesome и FVWM на эту роль подходят не хуже, только сборка среды куда менее юзерфрендли.

И что, во время обновлений ни один аддон не отпал? Не верю.

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

Я всего лишь намекаю на то, что если ты до конца не уверен в том, что решение действительно рассчитано на работу годами, то стоит иногда выглядывать на улицу и интересоваться, какой год на дворе: возможно, технологии уже продвинулись вперёд настолько, что привычные вещи оказались никому не нужными анахронизмами. Я вон, тоже до сравнительно недавнего времени проживал на дне океана и юзал исключительно ifconfig и iwconfig, пока не узнал, что они, внезапно, устарели. Долго искал, чем ip и iw хуже - так и не нашёл, поэтому перешёл на них, ибо синдромом утёнка не страдаю. Эволюция, Морфеус, эволюция... ©

border-radius
()
Ответ на: комментарий от border-radius

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

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

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

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

это юниты, унаследованные от общесистемной копии systemd.

нет, не все

$ ls -l /usr/lib/systemd/user
total 16
lrwxrwxrwx. 1 root root  40 Aug  1 21:29 bluetooth.target -> /usr/lib/systemd/system/bluetooth.target
-rw-r--r--. 1 root root 373 Jul 24 16:37 default.target
-rw-r--r--. 1 root root 499 Jul 24 16:37 exit.target
-rw-r--r--. 1 root root 170 Apr 14 09:17 obex.service
lrwxrwxrwx. 1 root root  36 Aug  1 21:29 paths.target -> /usr/lib/systemd/system/paths.target
lrwxrwxrwx. 1 root root  38 Aug  1 21:29 printer.target -> /usr/lib/systemd/system/printer.target
lrwxrwxrwx. 1 root root  39 Aug  1 21:29 shutdown.target -> /usr/lib/systemd/system/shutdown.target
lrwxrwxrwx. 1 root root  40 Aug  1 21:29 smartcard.target -> /usr/lib/systemd/system/smartcard.target
lrwxrwxrwx. 1 root root  38 Aug  1 21:29 sockets.target -> /usr/lib/systemd/system/sockets.target
lrwxrwxrwx. 1 root root  36 Aug  1 21:29 sound.target -> /usr/lib/systemd/system/sound.target
-rw-r--r--. 1 root root 501 Jul 24 16:37 systemd-exit.service
lrwxrwxrwx. 1 root root  37 Aug  1 21:29 timers.target -> /usr/lib/systemd/system/timers.target
timuaz
()
Ответ на: комментарий от timuaz

За исключением obex.service, который в таком виде неработоспособен, и systemd-exit.service, который сугубо сервисный и требуется для завершения работы юзерской инстанции, остальные являются пассивными таргетами.

Собственно, о чём я и говорю --

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

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

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

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

Я, вот, немного пользуюсь.

systemctl --user list-units|ag service|awk '{print $1}'
deluged.service
emacs.service
minidlna.service
mpd.service
mpdcron.service
pulsecron.service
tmux.service
yandex-disk.service

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