LINUX.ORG.RU

Новый релиз systemd 195

 


0

1

Lennart Poettering продолжает развивать свое творение, внося в него новые возможности. В свежевыпущенный релиз внесены следующие изменения:

  • journalctl получил новые параметры --since= и --until= для фильтрации по времени. Также теперь поддерживается фильтрация по юнитам через --unit=/-u.
  • journald теперь поддерживает ротацию и очистку журнала по времени в дополнение к уже имевшейся ротации по занимаемому месту.
  • journal теперь индексирует имеющиеся значения полей для каждого поля. Это позволяет клиенту просмотреть имеющиеся значения при фильтрации. В соответствии с этим обновлены bash completion. journalctl получил новый параметр -F для просмотра имеющихся значений, которые принимает поле в базе журнала.
  • Большее количество сообщений сервисов теперь записываются в журнал как структурированные и распознаются по идентификатору.
  • Мини-сервисы timedated, localed, которые ранее предоставляли поддержку смены времени, локали и имени хоста только из графического окружения типа GNOME, теперь имеют и минималистичные (но весьма функциональные) консольные клиенты для управления. Возможно, теперь это самый приятный способ смены настроек из командной строки, в особенности потому, что в них присутствует полный список опций и они интегрированы с bash completion.
  • Новая утилита systemd-coredumpctl для получения списка и извлечения coredump-ов из журнала.
  • Теперь дистрибутив устанавливает README-файлы в /var/log/ и /etc/rc.d/init.d, которые поясняют, куда подевались журналы и скрипты инициализации. Автор надеется, что это поможет сориентироваться зашедшему в эти, теперь пустые, каталоги.
  • В gatewayd добавлено множество возможностей таких, как режим «follow» для режима немедленной синхронизации и фильтрации.
  • gatewayd/journalctl теперь поддерживают вывод типа HTML5/JSON Server-Sent-Events.
  • Логика режима совместимости с init-скриптами SysV теперь эвристически определяет поддержку скриптом ключевого слова «reload» и только при его наличии предоставляет возможность «systemctl reload».
  • Сервисы типа oneshot не могут использовать ExecReload=.
  • При запуске пользовательского сервиса (через systemd --user) переменная окружения $MANAGERPID устанавливается в PID systemd.
  • Посылка сигнала SIGRTMIN+24 пользовательскому экземпляру systemd приводит к его немедленной остановке.
  • В browse.html теперь доступны фильтрация и просмотр детальной информации для отдельных полей.
  • «systemctl status --follow» удалено, используйте «journal -u».
  • Опции journald.conf RuntimeMinSize=, PersistentMinSize= удалены как бесполезные при настройке.

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



Проверено: JB ()
Последнее исправление: Silent (всего исправлений: 6)
Ответ на: комментарий от anonymous

QEMU_HARDDISK

Странно, sda не тегирован. Но не думаю что это основная проблема. Меня смущает, что у тебя в systemctl только один девайс юнит. Т.е. тот же dm должен мапится в sys-devices-virtual-block-dm\x2dX.device, а его там нет

Но почему останавливается загрузка?

А хрен его знает. Если смотреть депы глазами, то кажется что там дедлок (% Но может показалось. Что не отменяет вопроса, что мешает systemd-modules-load.service

Попробуй ка

systemctl mask plymouth-start.service
systemctl mask systemd-ask-password-plymouth.path
systemctl mask plymouth-quit-wait.service
systemctl mask systemd-ask-password-console.path

Скорее всего это ничего принципиально не поменяет, но в любом случае скинь job-list и systemctl --full. А потом суй LogLevel=debug в /etc/systemd/system.conf и еще раз

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

Если смотреть депы глазами, то кажется что там дедлок (%

Вроде ж systemd должен об этом громко ругаться... Или нет?

Скорее всего это ничего принципиально не поменяет

Визуально при загрузке ничего не изменилось. Загрузка выглядела так же как тут.

скинь job-list и systemctl --full. А потом суй LogLevel=debug в /etc/systemd/system.conf и еще раз

И то и другое с LogLevel=debug : http://pastebin.com/uU7dsn8B

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

Если смотреть депы глазами, то кажется что там дедлок (%

А что, в systemd нет инструмента для статического анализа зависимостей (на дедлоки, например)?

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

А что, в systemd нет инструмента для статического анализа зависимостей (на дедлоки, например)?

Ждём gdbd и valgrindd?

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

gdbd и valgrindd?

Это динамический анализ. Хочется запустить «systemd-config-validate» и получить вывод «в конфигурации дедлок» или «ссылка на несуществующую службу» или еще что-то такое.

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

openrc говно еще то.

та ты ж всё равно не в курсе, а зачем пишешь?

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

Вменяемого пока не написали, а вообще есть:

user > cat deadlock1.target 
[Unit]
Description=DL
Requires=deadlock2.target
After=deadlock2.target
user > cat deadlock2.target
[Unit]
Description=DL2
Requires=deadlock1.target
After=deadlock1.target
> systemd --test --user --unit=deadlock1.target  1>/dev/null
Found ordering cycle on deadlock1.target/start
Walked on cycle path to deadlock2.target/start
Walked on cycle path to deadlock1.target/start
Unable to break cycle
Requested transaction contains an unfixable cyclic ordering dependency: Transaction order is cyclic. See system logs for details.
Failed to start default target: Transaction order is cyclic. See system logs for details.
vasily_pupkin ★★★★★
()
Ответ на: комментарий от anonymous

У тебя там или начала лога нету, или одно из двух. Может быть какой-то из их федорокостылей делает /run/ или /var/log больно. Делай вывод в kmsg >_<

А перед этим замаскай оставшиеся mount

systemctl mask sys-kernel-config.mount
systemctl mask sys-fs-fuse-connections.mount
vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

И добавь

ExecStart=/usr/bin/systemctl --full
ExecStart=/bin/mount
ExecStart=/bin/lsblk

в boot-watchdog.service после job-list и перед emergency

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

У тебя там или начала лога нету, или одно из двух.

Начала лога действительно нет, но из него откушено только то, что происходило в initramfs. У федоры в initramfs-е тоже есть systemd, udevd, journald, и другиеd.

Делай вывод в kmsg >_<

Кстати, а вот вывод из dmesg (начало, которое было в момент загрузки и initramfs-а тоже откушено): http://pastebin.com/6niRGSEz

А перед этим замаскай оставшиеся mount
systemctl mask sys-kernel-config.mount
systemctl mask sys-fs-fuse-connections.mount

Еще надо?

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

Кхм..

for service in $(awk  '/waiting/{print $4}' log | sort | uniq); do echo $service: $(grep "$service.*waiting" log | wc -l)/$(grep "$service/start finished" log | wc -l); done
proc-sys-fs-binfmt_misc.automount: 2/1
systemd-ask-password-wall.path: 2/1
systemd-readahead-done.timer: 1/1

Попробуй

systemctl mask systemd-ask-password-wall.path
systemctl mask proc-sys-fs-binfmt_misc.automount

И клади полний лог, вместе с предидущим

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

Это динамический анализ. Хочется запустить «systemd-config-validate» и получить вывод «в конфигурации дедлок» или «ссылка на несуществующую службу» или еще что-то такое.

Модные технологии? Что-то в стиле Агда-дэ?

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

journalctl + dmesg: http://pastebin.com/hvFigNyx

systemd как-то рандомно выбирает, куда писать лог. От пяти подряд идущих команд:

ExecStart=/usr/bin/systemctl --full list-jobs
ExecStart=/usr/bin/systemctl --full
ExecStart=/bin/mount
ExecStart=/bin/lsblk
ExecStart=/usr/bin/systemctl start emergency.target
строка «About to execute: ...» пошла в journal только от первой и пятой (остальные в dmesg), строка «Forked ... as» в journal пошла от первой, четвертой и пятой, а из строк «Got SIGCHLD for process» в dmesg не попало ни одной.

Похоже, вписывать больше одной команды в boot-watchdog.service было плохой идеей — выполнились они, вроде как, последовательно, но в журнале их вывод идет вперемешку друг с другом, да ещё и после сообщения об их завершении.

Интересно, логи других программ journal тоже перемешивает?

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

Интересно, логи других программ journal тоже перемешивает?

Молодой человек, прочитайте что-нибудь о буферизации ввода-вывода.

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

Интересно, логи других программ journal тоже перемешивает?

Молодой человек, прочитайте что-нибудь о буферизации ввода-вывода.

Сислог же работает, значит проблема не в буферизации.

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

У меня закончились рациональные предположения. Маскай systemd-journal-flush.service и systemd-modules-load.service. Там или рейсы, или проблемы с десерилизацией после перехода из initramfs в rootfs.

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

В 195 у меня кстати выхлоп в журнале последовательный

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

У меня закончились рациональные предположения.

:-( Я не возражаю потестить даже иррациональные.

Маскай systemd-journal-flush.service и systemd-modules-load.service.

Выглядит также. Лог (dmesg + journalctl): http://pastebin.com/wuJz4N7T

Там или рейсы, или проблемы с десерилизацией после перехода из initramfs в rootfs.

Между initramfs и rootfs, вроде как, нет связи. В смысле, можно загрузиться с init=/bin/bash и увидеть обычный шелл, без всяких systemd. А затем сделать exec /sbin/init и получить тот же самый вис.

Если ты это в qemu тестишь

В KVM. На реальной машине тоже бывает вис с такими же симптомами, но намного реже. А в kvm он вылазит почти на каждой загрузке.

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

И как я это сделаю? Скину по почте 760МБ? ;-) Образ Fedora-18-Nightly-20120930.12-i686-Live-desktop.iso был взят отсюда, но там уже старые образы почистили. Думаю, на F18-alpha или F18-beta это тоже воспроизведется.

anonymous
()

Вебсервер, qr-коды, а теперь и HTML5. Очень нужные вещи в системном сервисе xD
Следующий шаг - просмотр HD видео во время загрузки?

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

Точно! Новая операционка отпочковалась ! ядро теперь будет systemd а не линукс Как там плагины прикручивать ?

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

Lennart, расскажи анонимусу и Василию Пупкину как-же им решить их проблему? Чтобы все наглядно увидели что системд нагляднее и прощее чем г-скрипты на г-шелле.

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

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

Я понимаю что это может показаться революционной идеей, но вам не приходило в голову при возникновении проблем с неким ПО сообщить о них авторам данного ПО используя рекомендованную ими форму обратной связи? Таки да, я именно про пресловутый багтрекер.

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

Так kms и прочую графику в ядре без путтеринга уже впилили.

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

Я понимаю что это может показаться революционной идеей, но вам не приходило в голову при возникновении проблем с неким ПО сообщить о них авторам данного ПО используя рекомендованную ими форму обратной связи?

То есть вы признаёте, что отладка проблем в systemd собственными силами невозможна? А ведь для initscripts это элементарно. :)

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

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

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

Что постить в данном случае? Процесс загрузки нерегулярно виснет без видимых причин, на реальной машине время от времени, в qemu «почти на каждой загрузке». Как диагностировать такую ситуацию? Предположения у обсуждающих исчерпаны.

Есть что сказать по существу?

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

обозначение невероятного собственного превосходства

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

Что постить в данном случае?

Версию systemd и ОС, все используемые юниты, лог journald - и всё, что попросят авторы для воспроизведения ошибки.

Вот видишь - это совсем несложно :) Немного сложнее нытья на форуме, но зато куда более перспективно.

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

Прежде чем сообщать об ошибке необходимо диагностировать ситуацию как ошибку. В данном случае непонятно в чем дело. Сообщения типа «время от времени возникает ситуация» приводят к тому что багрепорты висят месяцами и годами в статусе NEW. Не сомневаюсь, что как спец по багтракеру systemd ты сам можешь подобные багрепорты найти.

Поэтому, вопрос не в том куда постить баги. А в том, как правильно диагностировать ситуацию в данном случае. Раз уж systemd декларирует понятность, логичность и управляемость.

Очевидно, ты не в курсе.

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

А как установить systemd на Ubuntu 12.10 не подскажите? Несколько статей нашёл, но установка не получается из-за того, что «не наёден кандидат на установку systemd». Я так понимаю, его нет в репозиториях, которые есть у меня, хотя я добавлял те репозитории, что были в тех статьях. Каким образом установить мне можно? Желательно полегче способ. =)

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

«Интересно, логи других программ journal тоже перемешивает?» да. более того journald переодически просто теряет информацию которую его просят залогировать. что делает процесс понимания «а гдеже разложены граблии» совершенно фееричным.

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

Некроманты оживили тему.

Я не хочу оправдывать systemd в плане некоторой нетривиальности отладки из коробки, но в данном конкретном случае стоит уделить внимание тому факту, что в этом дерьмище участвовал альфа-билд системы, который

  • при запуске пишет «ололо вы смелый парень»
  • уже не существует (в том, который я смог выкачать в тот же день такое поведение в ящике и kvm мне воспроизвести не удалось)
  • является федорой
  • содержит жутчайшую мешанину из компонент в initrd/lvm, в которой сам черт не разберет, где что оказалось

Спасибо за внимание.

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

участвовал альфа-билд системы

Альфа-билд федоры, да. Поэтому никто и не ожидал, что оно должно работать без проблем. Но всё-таки это был уже почти двухсотый релиз systemd, далеко не альфа.

А вообще тема хорошая получилась. Если кто-то когда-то будет пытаться чинить systemd своими силами — в этой теме он сможет найти много интересных мест и подходов, которые стоит посмотреть.

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

«Если кто-то когда-то будет пытаться чинить systemd своими силами — в этой теме он сможет найти много интересных мест и подходов, которые стоит посмотреть» увы. к 256 версии все это устареет безнадежно

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