dbus使用

1.dbus例子和文档

手册:https://dbus.freedesktop.org/doc/dbus-specification.html#message-bus-overview

api:https://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html

例子:http://www.matthew.ath.cx/articles/dbus

网站中有说明和例子dbus-example.c

2.配置文件

将配置文件放到/etc/dbus-1/system.d/下

<!DOCTYPE busconfig PUBLIC
 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
        <policy user="root">
                <allow own="test.signal.sink"/> 
                <allow send_destination="test.signal.sink"/>
                <allow send_interface="test.signal.sink"/>
                <allow own="test.signal.source"/> 
                <allow send_destination="test.signal.source"/>
                <allow send_interface="test.signal.source"/>
                <allow own="test.method.server"/> 
                <allow send_destination="test.method.server"/>
                <allow send_interface="test.method.server"/>
        </policy>
        <policy at_console="true">
                <allow send_destination="test.signal.sink"/>
                <allow send_interface="test.signal.sink"/>
                <allow send_destination="test.signal.source"/>
                <allow send_interface="test.signal.source"/>
                <allow send_destination="test.method.server"/>
                <allow send_interface="test.method.server"/>
        </policy>
        <policy context="default">
                <deny own="test.signal.sink"/>
                <deny send_destination="test.signal.sink"/>
                <deny send_interface="test.signal.sink"/>
                <deny own="test.signal.source"/>
                <deny send_destination="test.signal.source"/>
                <deny send_interface="test.signal.source"/>
                <deny own="test.method.server"/>
                <deny send_destination="test.method.server"/>
                <deny send_interface="test.method.server"/>
        </policy>
        <limit name="max_replies_per_connection">512</limit>
</busconfig>

3.遇到的问题

3.1 process 3709: Applications must not close shared connections - see dbus_connection_close() docs. This is a bug in the application.

将发送函数dbusSendSignal中的dbus_connection_close(conn);去掉

3.2 多进程使用同一条总线dbus_bus_request_name失败问题

查看错误原因,多进程使用同一总线时要在dbus_bus_request_name时添加DBUS_NAME_FLAG_ALLOW_REPLACEMENT标志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值