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 ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.