LINUX.ORG.RU

systemd 239

 


1

2

22 июня был представлен очередной релиз systemd — набора служебных компонентов для операционных систем на основе ядра Linux, в который (в числе прочего) входит система инициализации, служба ведения общесистемного лога (журнала), механизм управления пользовательскими сессиями и подсистема для работы с контейнерами. Система инициализации systemd основана на модели зависимостей (в противовес событийной модели upstart), включает в себя элементы супервизора на базе механизма cgroups ядра Linux, реализует концепции сокет- и dbus-активации процессов и предоставляет удобный декларативный синтаксис для описания демонов и других сущностей.

В рамках проекта также разрабатывается ряд легковесных вспомогательных программ, выполняющих второстепенные, но распространённые вспомогательные задачи — от настройки виртуальных терминалов (systemd-vconsole-setup) до управления сетью (systemd-networkd), SNTP-клиента (systemd-timesyncd) и UEFI-загрузчика (бывший gummiboot).

Нововведением этого релиза можно назвать концепцию Portable Services. Portable service — это образ корневой ФС с точкой входа в виде набора юнитов, среднее между chroot() и Docker-контейнером. Отличие portable services от контейнеров в том, что их не предполагается изолировать от хоста (за исключением смены корня).

Изменения в CLI systemd

  • Добавлена утилита portablectl для управления portable services. В этом релизе она устанавливается вне $PATH/usr/lib/systemd) поскольку её интерфейс (как и сама концепция) ещё не стабилизирован.
  • Утилита systemd-resolve переименована в resolvectl для единообразия с остальными утилитами, а её синтаксис приведён к виду resolvectl <подкоманда> (например, resolvectl status вместо resolvectl --status — прим. пер.). Старый синтаксис сохранён для совместимости, но его описание исключено из документации.
  • Вновь переименованная утилита resolvectl теперь поддерживает операции и синтаксис команды resolvconf(1) (а также кучу других новых команд — прим. пер.) и может заменять её, будучи установленной под этим именем.
  • Утилита systemd-analyze теперь имеет новую подкоманду cat-config, которая позволяет вывести содержимое любого конфигурационного файла systemd (со всеми дополнениями и с соблюдением правил замещения).

    Например, systemd-analyze cat-config systemd/system.conf распечатает первый из следующих файлов:

    • /usr/lib/systemd/system.conf
    • /run/systemd/system.conf
    • /etc/systemd/system.conf

    …после чего распечатает все .conf-файлы в /usr/lib/systemd/system.conf.d, /run/systemd/system.conf.d и /etc/systemd/system.conf.d, соблюдая для одноимённых файлов те же правила замещения.

  • Аналогично вышеописанному, прочие вспомогательные программы из systemd теперь имеют ключ --cat-config, который позволяет вывести эффективное содержимое их конфигурации.

    Например, systemd-tmpfiles --cat-config распечатает все .conf-файлы в /usr/lib/tmpfiles.d, /run/tmpfiles.d и /etc/tmpfiles.d, соблюдая стандартные правила замещения.

  • Команда systemd-nspawn теперь имеет несколько новых ключей, дублирующих для удобства настройки из юнитов:
    • --rlimit= задаёт исходные ограничения использования ресурсов процессами внутри контейнера;
    • --hostname= явно устанавливает имя хоста контейнера (по умолчанию в качестве имени хоста используется имя контейнера – прим. пер.);
    • --no-new-privileges= устанавливает prctl(2)-флаг PR_SET_NO_NEW_PRIVS (аналогично директиве NoNewPrivileges=);
    • --oom-score-adjust= задаёт исходное значение поправки OOM score для процессов внутри контейнера (аналогично директиве OOMScoreAdjust=);
    • --cpu-affinity= задаёт исходное значение привязки процессов контейнера к ядрам CPU (аналогично директиве CPUAffinity=);
    • --resolv-conf= позволяет управлять содержанием файла /etc/resolv.conf(5) внутри контейнера (например, скопировать или примонтировать его из хоста или из комплекта systemd-resolved);
    • Наконец, --timezone= позволяет управлять содержимым файла /etc/localtime(5) внутри контейнера.
  • Подкоманда coredumpctl gdb была переименована в coredumpctl debug, чтобы подчеркнуть независимость от gdb. Старый синтаксис сохранён для совместимости, но его описание исключено из документации.

    Выбрать вместо gdb другой отладчик можно с помощью ключа --debugger= или переменной окружения $SYSTEMD_DEBUGGER.

  • Команда systemctl и многие другие при выводе на экран терминала теперь генерируют управляющие последовательности OSC 8, добавляющие гиперссылки там, где это уместно (например, в выводе systemctl status можно найти гиперссылки на расположение unit-файла).

    Это поведение можно контролировать с помощью переменной окружения $SYSTEMD_URLIFY.

    Авторы отдельно отмечают, что пейджер less(1) не совместим с этими управляющими последовательностями, поэтому гиперссылки будут автоматически отключаться при использовании пейджеров до исправления проблем в less.

    Про управляющую последовательность OSC 8 можно прочесть по ссылке.

  • Утилита timedatectl получила три новые подкоманды:
  • Утилита systemd-detect-virt теперь имеет ключ --list, который выводит список всех известных систем виртуализации.
  • Утилиты journalctl и systemctl теперь поддерживают формат вывода журнала -o with-unit. Этот формат аналогичен -o short за исключением того, что метка syslog заменяется на имя юнита, а временные метки отображаются с часовым поясом.
  • Исполняемый файл systemd теперь имеет ключ --dump-bus-properties, который выводит список всех поддерживаемых (инитом, на всех путях и интерфейсах – прим. пер.) свойств D-Bus (за исключением свойств, ещё поддерживаемых, но объявленных устаревшими — они не отображаются).
  • Утилита systemd-path теперь имеет подкоманду search-binaries-default, которая выводит значение $PATH по умолчанию во всех запускаемых systemd процессах.

Изменения в поведении

  • Повторное использование директивы RestrictNamespaces= теперь объединяет ограничения, а не замещает первый список ограничений вторым.
  • Изменена схема именования сетевых интерфейсов в некоторых особых случаях:
    • виртуальных интерфейсов NPAR,
    • виртуальных интерфейсов SR-IOV,
    • PCI-интерфейсов, для которых неизвестен номер PCI-слота.

    Для виртуальных интерфейсов, созданных через SR-IOV, будет использовано имя родительского интерфейса с добавлением суффикса v<N>, где N — номер виртуального устройства (ранее имена выдавались независимо).

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

    Для PCI-интерфейсов, для которых неизвестен номер PCI-слота, будет использован номер PCI-слота любого из родительских устройств, если он есть (ранее такие интерфейсы не переименовывались).

  • (мейнтейнерам) В юните systemd-logind.service адресные пространства AF_INET и AF_INET6 исключены из разрешённого списка (RestrictAddressFamilies=). Начиная с systemd 235, для достижения того же эффекта применяется директива IPAddressDeny=any.

    Это не должно как-либо изменить поведение, но если кто-то ранее отключил IPAddressDeny=, чтобы разрешить systemd-logind доступ в сеть, следует иметь это в виду и вернуть AF_INET и AF_INET6 обратно в список разрешённых адресных пространств.

  • Все долгоживующие демоны из состава systemd (в частности, systemd-udevd) теперь запускаются с белым списком разрешённых системных вызовов (вместо запрета отдельных системных вызовов, как раньше).

    Это не должно как-либо изменить поведение, но если кто-то ранее отключал или изменял ограничения для systemd-udevd, следует иметь новые ограничения в виду, т. к. они, в числе прочего, запрещают работу с точками монтирования, swap-устройствами, изменение часов и перезагрузку системы из правил udev.

  • При использовании директивы Restart= совместно с OnFailure=, действие OnFailure= теперь выполняется только в том случае, если юнит не будет перезапущен (напр., после исчерпания попыток перезапуска). Историческое поведение противоречило документации и было исправлено.
  • systemd-tmpfiles теперь выводит замечание, когда какое-либо правило ссылается на файлы в /var/run. Согласно рекомендациям systemd, /var/run должен ссылаться на /run и использоваться только для совместимости. Начиная с данного релиза, systemd-tmpfiles будет исходить из этого предположения при проверке конфликтов правил.(Не очень понятно, почему нужно делать какие-то предположения вместо того, чтобы делать эквивалент realpath(1), ну да ладно. – прим. пер.)
  • Подкоманды systemctl disable, systemctl unmask, systemctl preset и systemctl preset-all теперь не поддерживают флаг --runtime. Ранее это было разрешено, но приводило к контринтуитивному поведению (не «временное отключение» или «временная размаскировка», а «отмена временного включения» и «отмена временной маскировки» и т. п.).

    Вместо этого, подкоманды disable и unmask теперь будут автоматически работать и в /run, и в /etc, т. е. будут удалять релевантные ссылки в обоих местах.

Изменения в ядре systemd

  • В файле system.conf доступна новая глобальная директива NoNewPrivileges=, которая отключает поднятие привилегий для всех процессов в системе. В частности, теряют силу setuid-биты и биты capabilities на файлах.

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

  • При входе в гибернацию systemd научился сообщать ядру смещение образа гибернации внутри устройства. Это означает, что гибернация теперь может работать со swap-файлами.
  • В systemd добавлена поддержка «обобщённых» drop-in’ов. В частности, если юнит называется foo-bar-baz.service, то systemd теперь будет искать drop-in’ы в следующих местах (в порядке уменьшения приоритета):
    • foo-bar-baz.service.d/*.conf (было ранее)
    • foo-bar-.service.d/*.conf
    • foo-.service.d/*.conf

    Эта возможность будет наиболее полезна в .mount- и .slice-юнитах (т. к. их схемы именования иерархичны), но технически поддерживается везде.

    Вдогонку к этой возможности, в юнит-файлах появились две новые подстановки: %j и %J. Они заменяются на часть названия юнита после последнего дефиса в названии текущего drop-in’а (соответственно без декодирования строки и с).

  • Помимо вышеописанных, в юнит-файлах появились ещё три новые подстановки:
    • %T заменяется на /tmp или временный каталог текущего пользователя,
    • %V заменяется на /var/tmp или, опять же, временный каталог текущего пользователя,
    • %E заменяется на /etc (для системных юнитов) или $XDG_CONFIG_HOME (для пользовательских юнитов).
  • В директивах Exec*= юнит-файлов теперь допускается использование неабсолютных путей к исполняемым файлам. Они будут разрешены с использованием $PATH по умолчанию (см. выше пункт о systemd-path search-binaries-default).
  • В systemd добавлено новое состояние юнитов (load state) bad-setting. Юниты, содержащие критические ошибки, теперь будут помечаться этим состоянием.
  • В .socket-юнитах с Accept=yes в дополнение к счётчику принятых соединений («accepted») теперь также ведётся счётчик отвергнутых соединений («refused»).systemctl show он пока не отображается — прим. пер.)
  • В systemd добавлена поддержка гибридного режима сна (suspend-then-hibernate).
  • Модуль nss-systemd для glibc NSS теперь поддерживает перечисление всех существующих в настоящий момент динамических учётных записей и групп. Ранее для таких учётных записей поддерживались операции преобразования из имён в номера, но получить их список было нельзя.
  • systemd теперь будет перепланировать уже запущенные (ожидающие) таймеры при изменении часового пояса. (Ранее это происходило только при изменении системного времени.)
  • В юнитах, запускающих процессы, добавлена директива PrivateMounts=, которая помещает процессы юнита в отдельное пространство имён файловой системы. Включение этой директивы подразумевается при использовании прочих директив, связанных с изоляцией файловой системы (PrivateTmp=, PrivateDevices=, ProtectSystem= и т. п.).
  • В секции [Unit] юнит-файлов добавлена директива ConditionSecurity=uefi-secureboot, проверяющая, включен ли UEFI Secure Boot.

Новые специальные юниты

  • Добавлен юнит systemd-time-sync-wait.service, который ожидает завершения первичной синхронизации времени по NTP. Если его включить, он будет добавлен в зависимости цели time-sync.target, задерживая запуск зависимых от этой цели юнитов.

    Эта возможность будет полезна в системах, в которых нет встроенного энергонезависимого RTC или он плохого качества.

  • Добавлена цель system-update-pre.target, которая позволяет упорядочить запуск других юнитов до начала offline-обновления системы.

Прочие изменения

  • В systemd-boot теперь можно отключать автоматическое обнаружение Windows и macOS.
  • В systemd-boot появилось автоматическое определение оптимального разрешения экрана в HiDPI-системах, а также настройки, позволяющие изменить разрешение экрана вручную.
  • pam_systemd теперь может устанавливать некоторые параметры .scope-юнита создаваемой сессии из PAM-параметров systemd.memory_max, systemd.tasks_max, systemd.cpu_weight и systemd.io_weight (если эти параметры заданы предыдущими PAM-модулями). Таким образом, сторонние PAM-модули получили возможность настраивать ограничения для сессии.
  • (мейнтейнерам) systemd-timedated теперь может управлять состоянием произвольного NTP-клиента, а не только systemd-timesyncd. Имя альтернативного NTP-клиента может быть указано в переменной окружения $SYSTEMD_TIMEDATED_NTP_SERVICES (ожидается список имён юнитов, разделённых двоеточием).
  • systemd теперь будет по умолчанию включать TCP ECN установкой sysctl-переменной net.ipv4.tcp_ecn в 1.
  • В файле journald.conf теперь поддерживается задание порогового размера объекта для сжатия (ранее он составлял 512 байт). Пороговый размер может быть задан директивой Compress=<N>, где N — размер в байтах с суффиксами (ранее принимались только значения on и off).

Изменения в networkd и resolved

  • systemd-resolved теперь поддерживает DNS-over-TLS. По умолчанию этот протокол не задействован, пока не решены проблемы с задержкой установления соединения; его можно включить с помощью глобальной директивы DNSOverTLS= в файле resolved.conf.
  • systemd-resolved и systemd-networkd теперь используют DynamicUser=yes. Таким образом, учётные записи systemd-resolve и systemd-network больше не должны создаваться заранее.
  • systemd-networkd теперь будет автоматически передавать в ядро Linux информацию о времени жизни маршрутов (route expiration; Linux 4.4+).
  • Директива ClientIdentifier= секции [DHCP] .network-файлов теперь может принимать значение ClientIdentifier=duid-only. В этом случае systemd-networkd не будет включать IAID в передаваемый DHCPv4 client identifier. Такое поведение не соответствует RFC 4361, но может быть полезно в некоторых случаях.
  • В секции [Network] .network-файлов появилась директива IPv6MTUBytes=, позволяющая задать IPv6 MTU.

    Также в секции [Route] .network-файлов появилась директива MTUBytes=, позволяющая задать MTU для конкретного маршрута.

  • В секции [DHCP] .network-файлов появилась директива UserClass=, позволяющая задать DHCPv4-опцию User Class.
  • В .network-файлах появилась новая секция [CAN] с директивами BitRate=, SamplePoint= и RestartSec= для настройки CAN-интерфейсов.
  • В секции [Link] .network-файлов появились директивы Multicast= и AllMulticast=, позволяющие управлять флагами MULTICAST и ALLMULTI на сетевом интерфейсе.
  • Исключена поддержка директивы UDPSegmentationOffload= в секции [Link] .link-файлов ввиду ограниченной поддержки UDP Segmentation Offload в драйверах и прикладном софте.
  • В секции [Link] .link-файлов появились директивы RxChannels=, TxChannels=, OtherChannels= и CombinedChannels=, позволяющие настраивать количество каналов приёма/передачи на сетевой карте.
  • С помощью .netdev-файлов появилась возможность создавать виртуальные интерфейсы с драйвером «netdevsim» (Kind=netdevsim).

Изменения в API и документации

>>> Объявление о релизе

★★★★★

Проверено: leave ()
Последнее исправление: tailgunner (всего исправлений: 9)

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

Я ненастоящий сварщик, но там разве не написали, что NOTABUG WONTFIX и если ты сидишь BIOS, то грузи ядро сам?

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

У меня в воскресенье собирался некоторый софт в свежеустанавливаемом deboostrap с sid, так вот контейнер не поднял сеть. Пришло сообщение с фэйл, заглянул в логи, требует пользователей systemd-resolve и systemd-network, роль поправил чтобы пользователи заводились и всё заработало. Особо не разбирался, но в юнитах в дебиане

User=systemd-network
DynamicUser=yes

в моих контейнер.nspawn cтоит User=root

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

там разве не написали, что NOTABUG

yuwata added RFE gift and removed «not-a-bug» labels

если ты сидишь BIOS, то грузи ядро сам?

Что значит «сам»?

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

yuwata added RFE gift and removed «not-a-bug» labels

Это в любом случае не «починить», а «сделать». А «сделать» никто не обязан, тем более что в случае BIOS не особо и понятно, как это сделать.

Что значит «сам»?

kexec -l /path/to/kernel --initrd /path/to/initrd --reuse-cmdline
systemctl kexec
intelfx ★★★★★
() автор топика
Ответ на: комментарий от intelfx

Раньше первая строка совалась в юнит, юнит в wantedby=kexec.target и всё работало.

Кстати, кто позволит запустить первую команду от пользователя? У ядра, например, права -rw-------.

utf8nowhere ★★★
()

Не нужно.

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

Раньше первая строка совалась в юнит, юнит в wantedby=kexec.target и всё работало.

Разумно. Открой новый RFE про systemctl kexec --force и поставь ссылку на этот.

Кстати, кто позволит запустить первую команду от пользователя? У ядра, например, права -rw-------.

Никто, как, в общем-то, и вторую. Или у тебя там polkit?

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

Почему же. Это нужно и правильно. Просто я не помню, вынесен ли kexec в polkit или нет.

--force

Этот флаг, кстати, уже занят. Нужно какой-нибудь ещё придумать. Или вообще глобальный флаг в systemd-system.conf.

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

А какие изменения этого релиза в ините тебе не нравятся?

Как бы вам объяснить. Мне не нравятся не изменения. Мне не нравится изменчивость. От инита ожидаешь быть простым и стабильным как скала. 7 экранов изменений в релизе — это очень далеко от простоты и стабильности.

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

От инита ожидаешь быть простым и стабильным как скала

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

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

Емнип, именно ты мне и объяснил, что апстрим не занимается stable. Иначе бы зачем суся ковырялась с бекпортами (заодно один раз нашла какую то дырень, которая была закрыта без уведомления что это дырень)

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

Вопрос решения стабилизации версий

Не решается. Идеал — это не когда нечего добавить, а когда нечего отнять. systemd очень далёк от идеала.

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

ты мне и объяснил, что апстрим не занимается stable

В какой-то момент начал (потом снова перестал и снова начал, да).

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

Если не заниматься словоблудием — все.

Нет. Всё, что исполняется в адресном пространстве PID 1, это инит. Всё остальное — нет.

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

Идеал — это <...> когда нечего отнять.

Лично тебе я разрешаю пользоваться идеальным ничем.

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

Ну да. Я в дебьянах не особо, я же гентушник.

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

Нет. Всё, что исполняется в адресном пространстве PID 1, это инит. Всё остальное — нет.

Именно по этому я уточнил насчёт словоблудия. Почему-то сторонникам sysvinit не приходится изворачиваться «инит это pid1, а кто там что в скриптах написал нас вообще не волнует».

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

О, это ж тот чувак, что для RHEL его стабилизирует. Он там выпилил весь режим --user и наверное не только. Я у него спросил зачем он это делает, он сказал что из-за internal issues.

d_a ★★★★★
()

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

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

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

anonymous
()

В директивах Exec*= юнит-файлов теперь допускается использование неабсолютных путей к исполняемым файлам. Они будут разрешены с использованием $PATH по умолчанию (см. выше пункт о systemd-path search-binaries-default).

Почти вовремя, но нет, слишком поздно.

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

сторонникам sysvinit не приходится изворачиваться «инит это pid1, а кто там что в скриптах написал нас вообще не волнует»

Возможно, потому что сторонники systemd в целом умнее и не выдвигают настолько идиотских претензий.

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

Это в любом случае не «починить», а «сделать».

Слушай, это в первый раз, что ли? На кучу очевидных багов системдики вешают «not-a-bug», это давно замеченная фишка.

Если мы считаем, что софт пишут для пользователей, а не для себя, то баг — это то, про что пользователи решили, что это баг, а не разработчики.

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

Сам себя не похвалишь - никто не похвалит?

anonymous
()

Утилита systemd-analyze теперь имеет новую подкоманду cat-config, которая позволяет вывести содержимое любого конфигурационного файла systemd (со всеми дополнениями и с соблюдением правил замещения).

Например, systemd-analyze cat-config systemd/system.conf распечатает первый из следующих файлов:

/usr/lib/systemd/system.conf
/run/systemd/system.conf
/etc/systemd/system.conf

…после чего распечатает все .conf-файлы в /usr/lib/systemd/system.conf.d, /run/systemd/system.conf.d и /etc/systemd/system.conf.d, соблюдая для одноимённых файлов те же правила замещения.

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

h578b1bde ★☆
()

в который (в числе прочего) входит система инициализации

Инит в systemd теперь это что-то вроде текстового редактора в Emacs?

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

Это для тех кто не может в файловую систему :D. Жду когда все конфиги запихают в бинарное хранилище.

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

Race-то починили с драйвером? Доколе будет кирилица квадратами?

Вот что бывает если вместо инита запилить системдэ православного КОИ8 юзать б-гомерзкий юникод.

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

Вот что бывает если вместо божественной латиницы (родной для ядра) юзать всякое местячковое ненужно

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

логи уже не дают самому посмотреть

Я не большой поклонник systemd в целом и Journal в частности, но разве исходники journalctl не открыты под свободной лицензией? Бери и пиши смотрелку подо что хочешь, хоть плагин для TC виндового сделай.

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

Вот что бывает если вместо божественной латиницы (родной для ядра) юзать всякое местячковое ненужно

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

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

Вот я и подумал о том: локализации зло. Но это так, не всерьез.

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

А еще лучше - запили свой инит с преферансом и куртизанками смотрелками логов и конфигурялками

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

разве исходники journalctl не открыты под свободной лицензией? Бери и пиши смотрелку подо что хочешь, хоть плагин для TC виндового сделай.

С каких пор исходники опциональной(?) утилиты являются описанием формата данных?

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

Насчёт «опциональной» ты, по-моему, гонишь, это официальная часть systemd и везде, куда дотянулся проклятый Поттеринг, ставится по умолчанию.

Описание формата она не заменяет, конечно (а ты уверен, что его нет?). Только я неоднократно встречал ситуацию, когда некий формат исходниками читалки описывается более адекватно, чем описанием, сделанным «на отвались». В любом случае на «не дают» ситуация не тянет.

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

тогда в bugs@yourdistro.tld, там обучены, что с вами делать

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

Он не пошутил, он просто сильно вежливый, вот и оставил допущение альтернативного варианта. Но это лишь древний этикет и фигура речи.

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

«Опциональная», потому что «официально» systemd - модульная система. А то, что Поттеринг «публично» заявил что без journald systemd нельзя (не возможно) использовать, - это уже детали реализации. То что исходники содержат какие-то намеки на используемый формат данных, и на основе этих косвенных данных делать выводы, - это из разряда ML и BigData, анализ массива неструктурированных данных. Что есть современно, модно и молодежно. В общем, верной дорогой идете, товарищи.

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

и не выдвигают настолько идиотских претензий.

и, к слову, это наглое враньё. 99% претензий к sysvinit относятся к скриптам запуска, которые внезапно «что не pid1, то не инит».

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