我如何从其他用户的桌面程序中获取dbus消息

时间:2019-09-15 06:00:20

标签: c linux debian dbus

我的问题:

  1. 在debian系统中,我使用通用会话登录。
  2. 我有一个程序A,它使用一些方法func1,func2 ...创建了一个总线名称“ cn.com.notify.ring”。
  3. 我有一个程序B调用func1成功。
  4. 现在我还有另一个程序C应该与 sudo -E C
  5. 一起运行
  6. 问题在于程序C无法找到会话总线,也无法调用方法。我该怎么解决这个问题。

我尝试:

我知道我需要-E来获取 DBUS_SESSION_BUS_ADDRESS ,然后运行 setuid()将用户ID更改为通用,但是我不想这样做

我的代码:

g_bus_own_name(G_BUS_TYPE_SESSION,
        "cn.com.notify.ring",
        G_BUS_NAME_OWNER_FLAGS_NONE,
        NULL,
        on_name_acquired,
        NULL,
        obj,
        NULL);

0 个答案:

没有答案