LINUX.ORG.RU

Systemd 235

 , ,


0

1

После трех месяцев разработки вышел релиз Systemd 235. Основные изменения:

  • Поддержка automake прекращена. В качестве сборщика используется Meson, использующий инструментарий ninja.
  • Для unit-файлов представлены опции RuntimeDirectory и RuntimeDirectoryPreserve, позволяющие определить путь к runtime-каталогу (в иерархии /run или $XDG_RUNTIME_DIR) и поведение в отношении сохранения его содержимого после остановки unit-а. Например, указание RuntimeDirectory=foobar приведёт к размещению данных в каталоге /run/foobar и удалению после завершения работы сервиса, если для него не установлена опция RuntimeDirectoryPreserve;
  • По аналогии с RuntimeDirectory для unit-ов представлены опции StateDirectory, CacheDirectory, LogsDirectory и ConfigurationDirectory, позволяющие вынести данные состояния, кэша, логов и настроек в отдельные подкаталоги в иерархиях /var/lib/, /var/cache/, /var/log/ и /etc, содержимое которых сохранится между запусками сервиса. Дополнительно добавлены вспомогательные пары опций, определяющие режим доступа к каталога - StateDirectoryMode, CacheDirectoryMode, LogsDirectoryMode, ConfigurationDirectoryMode.
  • В Systemd-Jornald реализована более агрессивное кеширование из /proc/ , а также запись в /proc/, что позволило увеличить производительность записи логов при большой нагрузке. Так как метаданные читаются в асинхронном режиме, их состояние может немного запаздывать относительно выводимых в лог записей. Владельцам SSD с TLC-памятью рекомендуется быть поосторожнее.
  • В unit-ы добавлена опция IPAccounting, при включении которой для сервиса добавляются счётчики с данными о трафике и числе пакетов. Данные о трафике можно посмотреть через «systemctl status» или «systemd-run --wait»;
  • Обеспечено сохранение в логе сведений о потреблении ресурсов CPU и трафике. Запись создаётся при каждой остановке юнита, если включены опции CPUAccounting или IPAccounting;
  • В unit-ах реализован Firewall, основанный на опциях IPAddressAllow и IPAddressDeny. Ограничения можно наложить как на входящий, так и на исходящий трафик.
  • В systemd-networkd представлена серия новых настроек, задаваемых через файлы .network: Scope (область достижимости) в секции [Address], ConfigureWithoutCarrier (игнорировать статус линка при настройке) в секции [Network], Anonymize (включение опций анонимного профиля RFC 7844) в секции [DHCP], Type (определение спецмаршрутов для направления трафика в blackhole/unreachable/prohibit) в секции [Route]. Добавлена новая секция [RoutingPolicyRule] для задания правил маршрутизации;
  • В файлы .netdev добавлены опции: Table в секции [VRF] для выбора используемой таблицы маршрутизации, Independent в секции [Tunnel] для настройки туннеля независимо от связанного с ним сетевого интерфейса, GroupForwardMask в секции [Bridge] для настройки распространение локальных сетевых кадров между портами сетевого моста;
  • В файлах .link добавлены новые режимы работы опции WakeOnLan, добавлена настройка TCP6SegmentationOffload для включения аппаратного ускорения обработки сегментов TCP/IPv6;
  • В реализацию сервера для анонса маршрутов IPv6 (Router Advertisment) добавлена поддержка отправки записей RDNSS и RDNSSL для передачи настроек DNS;
  • В systemd-nspawn добавлен флаг "--system-call-filter" для добавления и удаления элементов из применяемого по умолчанию фильтра системных вызовов. Реализована возможность определения белых списков системных вызовов с запретом всех остальных (ранее предлагались черные списки);
  • Добавлены новые фильтры групп системных вызовов: @aio, @sync, @chown, @setuid, @memlock, @signal и @timer, которые можно указывать через опцию SystemCallFilter или флаг "--system-call-filter";
  • В опцию ExecStart для unit-файлов добавлены два новых модификатора: При указании префикса "!" команда запускается без смены идентификатора пользователя/группы (без вызова setuid/setgid/setgroups). Второй модификатор "!!" идентичен "!" за исключением того, что его действие игнорируется на системах с поддержкой наследования расширенных прав (capabilities PR_CAP_AMBIENT, появились в ядре 4.3);
  • В systemd-run добавлен флаг "--pipe", при котором в вызываемый сервис systemd передаются файловые дескрипторы на STDIN/STDOUT/STDERR, что позволяет использовать его в цепочке с другими утилитами в shell с передачей данных через неименованные каналы;
  • Для каждого сервиса обеспечено поддержание счётчика перезапусков, который можно посмотреть командой «systemctl show -p NRestarts сервис».
  • Для unit-файлов реализована новая опция LockPersonality, позволяющая на лету привязать сервис к выбранному домену выполнения;
  • В поставку добавлен файл для modprobe.d, обеспечивающий переопределение параметров модуля bonding для корректного управления интерфейсом bond0 из systemd-networkd;
  • В journald.conf добавлена включенная по умолчанию настройка ReadKMsg, управляющая чтением лога ядра в systemd-journald, а также опция LineMax для задания максимального размера строки при выводе логов через STDOUT/STDERR;
  • В nss-myhostname/systemd-resolved по умолчанию обеспечена генерация DNS-записей A/AAAA для хоста «_gateway» вместо ранее применяемого имени «gateway», так как оно используется для внутренних нужд некоторых дистрибутивов (старое поведение можно вернуть во время сборки);
  • Добавлен новый целевой юнит для пользовательских сеансов: «getty-pre.target», который выполняется до консольного входа в систему;
  • Для увеличения качества энтропии в генераторе псевдослучайных числе systemd теперь при запуске каждого виртуального окружения пытается загрузить модуль ядра virtio-rng.ko;
  • В /etc/crypttab обеспечена возможность применения опции _netdev, по аналогии с /etc/fstab, для организации настройки шифрованных устройств после запуска сети; Для подключения внешних обработчиков в cryptsetup.target добавлено два целевых юнита remote-cryptsetup-pre.target и remote-cryptsetup.target, решающих те же задачи, что remote-fs.target и remote-fs-pre.target в local-fs.target;
  • В сервисы добавлена опция UnsetEnvironment, позволяющая убрать любую переменную окружения, которая в обычных условиях будет передана сервису;
  • Команды «systemctl poweroff», «systemctl reboot», «systemctl halt», «systemctl kexec» и «systemctl exit» теперь всегда выполняются в асинхронном режиме, т.е. сразу возвращают управление, не дожидаясь фактического завершения операции;
  • В systemd-resolve добавлен флаг "--reset-server-features", при указании которого очищаются и перезапрашиваются ранее полученные сведения о возможностях вышестоящих DNS-серверов. Отправка данных в лог теперь включает сведения о всех используемых DNS-серверах.

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

★★

Проверено: jollheef ()

Данные о трафике можно посмотреть через «systemctl status» или systemd-run --wait

Годно

Команды «systemctl poweroff», «systemctl reboot», «systemctl halt», «systemctl kexec» и «systemctl exit» теперь всегда выполняются в асинхронном режиме, т.е. сразу возвращают управление, не дожидаясь фактического завершения операции;

Теперь не будет ждать 90 секунд, если какой-то из сервисов не ответил?

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

Вот и надо отлаживать сервис. А так уменьшить таймаут можно с незапамятных времён

С каких пор пользователю нужно выполнять работу разработчика?

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

С тех пор как в большинстве дистров решили перенести эту задачу на пользователя

И результатом такого переноса стало падение доли Linux в Steam до 0,6%

anonymous ()

Документация

Киньте, кто-нибудь, кому не жалко, ссылкой на русскую документацию к Systemd. Помню, раньше кто-то занимался переводом и регулярно выкладывал документацию на русском к Systemd к каждой новой версии.

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

tsp0p ()

В unit-ах реализован Firewall, основанный на опциях IPAddressAllow и IPAddressDeny. Ограничения можно наложить как на входящий, так и на исходящий трафик.

Упоротые менеджеры РэдХэта уже и на iptables покушаются?

LittleKawaiiNeko ()

В реализацию сервера для анонса маршрутов IPv6 (Router Advertisment) добавлена поддержка отправки записей RDNSS и RDNSSL для передачи настроек DNS;

о боже

какой фатальный недостаток был у radvd, кроме того, что написан не очкастым гремлином? Хотя чего я спрашиваю

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

Упоротые менеджеры РэдХэта уже и на iptables покушаются?

Во-первых, ты хотел сказать не iptables, а netfilter. Во-вторых, «упоротые менеджеры», как ты выразился, «покушаются» на tcp_wrappers.

dexpl ★★★★★ ()

<…> каждого виртуального окружения <…>

<…> переменную окружения <…>

Вообще-то не «окружение», а «среда», но всем как всегда.

dexpl ★★★★★ ()

Команды «systemctl poweroff», «systemctl reboot», «systemctl halt», «systemctl kexec» и «systemctl exit» теперь всегда выполняются в асинхронном режиме, т.е. сразу возвращают управление, не дожидаясь фактического завершения операции;

Джва года ждал (на самом деле нет).

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

Давно покусились, создав firewalld. И firewalld, таки, лучше ущербного iptables.

странное сравнение, учитывая, что firewalld это фронтенд к ипстолам.

интересно кстати, они там отчаялись поддержку nftables впилить? https://github.com/firewalld/firewalld/tree/nftables тухлая.

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

Ninja представляет собой упрощенный вариант программы make, оптимизированный для значительного ускорения процесса повторной сборки крупных проектов, после внесения незначительных изменений в код. Ninja не поддерживает сложные сценарии принятия решений и оперирует простейшими правилами для описания зависимостей между файлами собираемого проекта. Вопрос учета системных зависимостей выносятся на плечи внешних инструментов, таких как пакет autotools. Использование Ninja позволяет значительно сократить время выполнения служебных операций в процессе пересборки.

https://www.opennet.ru/opennews/art.shtml?num=29525 — Разработчики из компании Google открыли код системы сборки Ninja

https://www.opennet.ru/prog/info/3721.shtml — Ninja - small build system similar to make

Или у тебя что по существу? Каждый день пересобираешь сустедик?

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

Вот раньше почему у Линукса 1% на десктопе был? Потому что у него svchost.exe не было! А теперь РэдХэт напишет свой svchost.exe для Линукса и будет у Линукса 0% за пределеами корпоративных десктопов для менеджеров.

LittleKawaiiNeko ()

Владельцам SSD с TLC-памятью рекомендуется быть поосторожнее.

Это Лёня так готовит нас к очередной багофиче, при которой SSD с JournalD будут изнашиваться быстрее, я правильно понял ?

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

Не осилил?

Я не осилил. Подскажи мне, о великий гуру.

Имеется юзкейс: 1500 флудящих айпишников на 80-й TCP порт. Клиента обижает конкурент. Задача - зобанить эти айпишники. При чем они могут меняться. Сегодня одни, завтра другие.

Внимание вопрос «осилятору» iptables: догадайся с одного раза, какой процесс начинает жрать 100% CPU, как только эти айпишники попадают в рулезы на DROP\REJECT ?

Конфиг: 24-хядерный Xeon, 96 Gb ОЗУ.

Даже сраный nginx справляется с этой задачей не нагружая сервачок.

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

Так а чем тебе поможет firewalld, который является фронтендом к iptables? И при чём здесь iptables, если это просто userspace утилита для netfilter?

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