c - 如何从其他用户的桌面程序获取 dbus 消息
问题描述
我的问题:
- 在 debian 系统中,我使用通用会话登录。
- 我有一个程序 A,它使用一些方法 func1、func2 创建了一个总线名称“cn.com.notify.ring”...
- 我有一个程序B调用func1是成功的。
- 现在我有另一个程序 C 应该使用sudo -EC运行
- 问题是程序 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);
解决方案
推荐阅读
- android - Android:无法在滚动时隐藏应用栏
- polymer - 如何避免在 lit-element 中重新定义 Web 组件?
- ios - 按下两个 UIButton 时如何更改它们的颜色?
- html - Bootstrap 4 div高度未扩展以适合内容
- node.js - Heroku 错误无法 GET / Node/Express/Router
- android - 自定义视图中子视图的 ID 在 Android 中是相同的
- python - 使用 multiprocessing.Pool().map 更改传递给它的变量的值
- perl - 在 Perl 中,如何判断字符串是否为数字,但不使用模块?
- php - 如何使用 n 输入实现此数字模式
- laravel - 运行 Artisan 命令时记录目录权限被拒绝错误