Релиз systemd 229

Леннарт Поттеринг (Lennart Poettering) представил выпуск системного менеджера systemd 229. Из новшеств можно отметить поддержку DNSSEС, добавление утилиты systemd-resolve, новую логику обработки core-дампов, изменение трактовки »0» для таймаутов, возможность ограничения максимального времени работы сервиса.

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

  • Расширены возможности DNS-резолвера systemd-resolved, который теперь может выполнять функции проверки DNSSEC. По умолчанию поддержка DNSSEC выключена, но будет активирована после более полного тестирования в одном из будущих выпусков. Для тестирования новой возможности в /etc/systemd/resolved.conf следует указать «DNSSEC=allow-downgrade». Кроме того, в systemd-resolved добавлен полный набор интерфейсов D-Bus, в том числе позволяющих управлять настройками DNS и DNSSEC в привязке к отдельным сетевым линкам. Обеспечен синтез записей RR для всех элементов /etc/hosts;
  • Документирована и переведена в разряд поддерживаемых утилита systemd-resolve (клиент к systemd-resolved), которая перемещена из /usr/lib/systemd в директорию /usr/bin;
  • Для отключения таймаутов в systemd теперь предлагается указывать значение «infinity» вместо »0». По новым правилам »0» ассоциирован со значением «сейчас», в то время как «infinity» воспринимается как «никогда». Для обеспечения совместимости все ранее присутствующие настройки таймаутов продолжат прежнюю трактовку установки в »0»;
  • Добавлена новая настройка сервисов «RuntimeMaxSec=», определяющая максимальное время выполнения сервиса, после истечения которого сервис принудительно завершается;
  • Переработана логика обработки coredump-файлов. После формирования core-дампа он записывается на диск, сжимается и обрабатывается новым экземпляром сервиса systemd-coredump, вместо задействования /proc/sys/kernel/core_pattern, что позволяет полностью контролировать процесс обработки со стороны systemd (обработка больших дампов может занимать много ресурсов и времени, поэтому теперь их можно ограничить лимитом RLIMIT_CORE);
  • Лимит RLIMIT_CORE по умолчанию установлен в значение «unlimited» для процесса PID 1 и всех его потомков (ранее по умолчанию использовалось значение »0», так как старый метод обработки core-дампов на основе /proc/sys/kernel/core_pattern не поддерживал ограничение ресурсов);
  • Извлечение данных трассировки стека (stacktrace) из core-дампа процессов системных пользователей теперь производится от имени отдельного пользователя «systemd-coredump», что снижает риск, связанный с возможными проблемами безопасности в коде разбора core-дампов. Обработка core-дампов от процессов обычных пользователей производится с правами владельца проблемного процесса;
  • В утилиту systemd-activate, предназначенную для тестирования средств активации по сокету, добавлена поддержка сокетов SOCK_DGRAM и SOCK_SEQPACKET, которые связаны с новыми опциями »--datagram» и »--seqpacket». В утилите также обеспечена поддержка передачи файловых дескрипторов в стиле inetd (опция »--inetd»);
  • В юниты с таймерами добавлена поддержка параметра «RandomizedDelaySec=», позволяющего настроить дополнительную случайную задержку, прибавляемую ко времени срабатывания таймера (позволяет избежать перегрузки из-за одновременного запуска нескольких ресурсоёмких заданий);
  • В socket-юнитах появилась возможность прикрепления к сокетам SCTP и UDP-lite;
  • В большинство утилит systemd добавлена поддержка переменой окружения $SYSTEMD_COLORS, при установке которой в 0 отключается поддержка цветного вывода на терминалах, поддерживающих ANSI-цвета;
  • В networkd добавлены две новые опции для управления VXLAN: «DestinationPort=» и «PortRange=»;
  • Добавлен новый параметр «systemd.machine_id=», задаваемый в командной строке ядра Linux и позволяющий передать идентификатор машины для его записи в /etc/machine-id, если данный файл не инициализирован;
  • Для устройств virtio добавлена поддержка символических ссылок /dev/disk/by-path/;
  • В systemd-nspawn добавлена опция »--as-pid2» для запуска в контейнере произвольной команды под PID 2 вместо PID 1, при этом под PID 1 запускается минимальная init-прослойка с реализаций обработчиков сигналов и управления дочерними процессами (данная прослойка интегрирована в nspawn и не требует добавления каких-то компонентов в контейнер);
  • В systemd-nspawn добавлена опция »--chdir=» для определения текущей рабочей директории для запускаемого в контейнера процесса;
  • Команда «journalctl /dev/sda» позволяет показать все логи ядра, связанные с указанным блочным устройством;
  • В journalctl добавлена опция »--fields» для вывода всех имён полей, используемых в журнале;
  • Команда «systemctl reload-or-try-restart» переименована в «systemctl try-reload-or-restart» для более точного отражения сути операции;
  • В процессе загрузки PID 1 теперь проверяет системное время и корректирует его, если установлено время, предшествующее времени выпуска используемого релиза systemd;
  • Добавлена новая настройка сервисов «AmbientCapabilities=», позволяющая передать дополнительные capabilities-права для уже активированных процессов;
  • Для сервисов теперь можно раздельно настраивать hard- и soft-лимиты на потребляемые ресурсы;
  • При определении календарного времени теперь поддерживается точность в доли секунд;
  • Удалена экспериментальная поддержка сжатия журналов и core-дампов с использованием алгоритма LZ4, который несовместим с утилитой lz4 (оставлена только поддержка формата сжатия, совместимого на бинарном уровне с lz4).

© OpenNet