zoukankan      html  css  js  c++  java
  • QT DBUS: Not connected to D-Bus server, 注意source /etc/profile

    运行环境:ARM

    运行如下代码:

        QDBusConnection bus = QDBusConnection::sessionBus();
        if(!bus.registerService("com.speedpro.venus")){
            qDebug() << "MessageServer" << bus.lastError().message();
            exit(1);
        }
    

      

    遇到问题: Not connected to D-Bus server

     手动启动server:dbus-daemon --session --print-address --fork --print-pid 

    得到输出:

    unix:abstract=/tmp/dbus-joKjEI2Nlt,guid=ba3900731f265bfec1fa867f5d1061881372
    

    重新运行程序,问题依旧。

    使用如下代码启动DBUS服务:

     eval `dbus-launch --auto-syntax`
    

      哇哦,竟然成功了。

    这行命令的意思是:

    采用eval来执行两次,第一次执行dbus-lauch --auto-syntax,除了启动dbus daemon之外,还输出了下面的内容(改内容在命令行不可见):

    DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-bIg8pa0xJr,guid=704d5838c9c3408b858966205d1064b4';
    export DBUS_SESSION_BUS_ADDRESS;
    DBUS_SESSION_BUS_PID=1380;

    第二次执行时就将环境变量DBUS_SESSION_BUS_ADDRESS暴露出去了。所有的dbus application在注册DBUS服务时,必须知道这个DBUS_SESSION_BUS_ADDRESS的数据。

    第二个问题:

    Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

    使用 

    eval `dbus-launch --sh-syntax`

    可以。

    一定要记得重新加载系统配置:

    source /etc/profile
  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/crazyghostvon/p/qtdbusnotconnect.html
Copyright © 2011-2022 走看看