Выход очередной версии init-демона systemd продолжает радовать пользователей новыми встроенными функциями.
В частности:
- опция HandleSleepKey в logind.conf была разбита на HandleSuspendKey и HandleHibernateKey, старая опция более не доступна;
- почти полностью удалена утилита multi-seat-x, минимальная обертка оставлена до тех пор, пока DM не начнут поддерживать новую логику перечисления графических устройств Xorg;
- nspawn теперь создает символическую ссылку /etc/localtime в окружении контейнера;
- исправлено поведение при отсутствии /etc/vconsole.conf, теперь в этом случае не будет загружаться никакой шрифт;
- journald теперь пишет в лог максимальный размер, который файлы журнала могут занимать на диске;
- опция параметра journalctl -n теперь необязательна и по умолчанию равна 10;
- journalctl -f теперь реагирует на изменение размеров терминала и разбивает строки соответственно;
- новая опция --cursor в journalctl позволяет выводить записи начиная с определенного места журнала;
- добавлена поддержка journalctl для bash-completion.
Но две функции привлекли особое внимание. Их заметили пользователи федоры, которые при обновлении обнаружили, что systemd теперь зависит от libmicrohttpd и qrencode. Это стало причиной активно продолжающегося обсуждения в рассылке.
Оказалось, что обе функции связаны с journald — собственной заменой syslog-демона, как известно, входящей в состав systemd. Среди прочего, он отличается тем, что ведет логи в бинарном виде вместо текстового.
Зависимость от qrencode объясняется реализацией функции Forward Secure Sealing, journalctl из состава systemd использует qrencode для вывода QR-кодов в текстовой консоли.
А поскольку логи хранятся бинарно, для работы с ними нужны дополнительные программы. Зависимость от libmicrohttpd вызвана тем, что в состав systemd теперь входит встроенный http-сервер journald-gateway, умеющий отдавать логи в текстовом и json-формате. Его основное предназначение автор видит в синхронизации журнала по сети.