LINUX.ORG.RU

[осваиваю]работа с DBUS, приложения от разных пользователей


0

0

Пробую работать с dbus. Насколько я понимаю, оно позволяет общаться приложениям между собой. Написал два приложения (qt4.5.1); запущенные от одного пользователя они прекрасно передают друг другу сообщения.

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

 if (!QDBusConnection::sessionBus().isConnected()) {
         qWarning("Cannot connect to the D-Bus session bus.\n"
                  "Please check your system settings and try again.\n");
         return 1;
     }

пытался запускать dbus-launch ./my-app - но оно никуда не цепляется, dbus-monitor ничего не ловит, приложения друг друга не видят.

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

PS. Дистрибутив MOPSLinux (русская слака), но, думаю, это не суть важно.

На скока помню, есть две шины-системная и юзерская. Так вот юзерская шина, вроде, тока в пределах одного юзера пашет. Могу ошибаться, в доках эта тема раскрыта. А ещё там нет аутентификации :)
true_admin ★★★★★
()
Ответ на: комментарий от true_admin
Про две шины я читал. Но не думаю, что это из-за этого у меня не запускается одно из приложений из-под root.

А политики вроде можно рулить через /etc/dbus-1/system.d

Unnamed_Hero ★★★
() автор топика
Ответ на: комментарий от Unnamed_Hero
это политики для системной шины, если не ошибаюсь
true_admin ★★★★★
()
всё оказалось очень просто. sessionBus заменить на systenBus, и написать свои политики для dbus
Unnamed_Hero ★★★
() автор топика
Ответ на: комментарий от Unnamed_Hero
А почему ты именно dbus хочешь? Он, конечно, стоит везде и в этом его преимущество, но в остальном это один большой шлак(имхо). Не хочешь google protocol buffers потестить?
true_admin ★★★★★
()
Для каждого пользовательского сеанса запускается отдельный демон шины D-Bus.
Evil_And ★★
()
Ответ на: комментарий от true_admin
Мне нужна была утилита чисто под Linux, поэтому DBUS. Всё уже сделано, через системный DBUS.
Unnamed_Hero ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.