LINUX.ORG.RU

systemd логирование при session dbus activation

 , ,


0

1

Я так понял что если написать сервис для systemd, то все что выводится в stderr процесса попадает в журнал systemd с идентификатором названия сервиса. В данном случае привязки к systemd нету.

Если же мы запускаем процесс через dbus активацию, то как в данном случае наиболее православно писать в журнал systemd без привязки к нему? Не дергать же systemd библиотеку напрямую?

Поразительно что не нагугливается хороший гайд по способам логирования при разных сценариях запуска

★★★★☆

systemd интегрируется с механизмом шинной активации, поэтому можно (и строго рекомендуется) запускать dbus-активируемые демоны из-под systemd.

Для этого юнит должен быть назван следующим образом: dbus-<адрес>.service (допускается симлинк с таким именем на основной юнит). Опционально можно указать директивы Type=dbus и BusName=<адрес> для синхронизации запуска (systemd пометит юнит как запустившийся только после того, как он зарегистрируется в dbus).

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

Работает, но не так, как ты думаешь (и не так, как ты хочешь). Проблема в том, что user != session. :]

Другими словами, systemd пользовательского режима работает со своим отдельным dbus-сервером, не привязанным ни к одной из сессий. Так что это не тот сервер, который ты видишь из иксов.

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

Я так и думал что-то если есть вот такие вещи https://github.com/sofar/user-session-units, то не все так просто, потому решил не копать в сторону использования systemd-managed демонов.

Задача по сути проста, есть обычный user-level демон, который должен висеть постоянно после первого контакта с консольным клиентом. Общаются по dbus. systemd строго говоря тут не нужен, обычная активация работает отлично и вроде через вызов syslog логирование должно нормально работать даже в journald

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

Кстати, откуда ты все это знаешь? Книга или доки? Скинь плз что читал

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

Код + собственные эксперименты. Пользовательский режим systemd намеренно не документирован и мало где описан, потому что там намечается масштабный перепил всего (после впиливания kdbus) — переход на per-user шину, соответствующие изменения в policykit и ещё много чего.

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

Пользовательский режим systemd намеренно не документирован

Тупняк.

Когда уже устаканится... А нафиг им kdbus?

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

Да, тогда твой подход (с syslog->journald форвардингом) выглядит правильным.

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

Потому что в него концепция per-user шины вписывается лучше (т. к., если грубо, аналогом текущего dbus-server становится сам systemd). Т. е. исчезает сама возможность создавать по шине на каждый чих, всё становится более централизованно.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.