• 从bug看DDE底层 dbus


    使用service networking restart命令重启网络后,桌面环境崩溃 


    整个主题都挂了。。。。。。  还有托盘的电源等等。。。
    深度截图也挂了,不能启动


    这个是由于system-dbus没有了导致的(networking其实是upstart )
    大家测试的时候可以使用这个命令
    sudo /etc/init.d/networking restart; sudo /etc/init.d/dbus start
    前一条会使system dbus消失,  后一条会打开system dbus(使状态恢复正常)
    现在测试的情况是
    软件中心, 深度音乐, 桌面, 托盘(网络,账户) 会挂
    其中最惨的是软件中心,  挂了后即使按照我上面提供的这种修复方式也没法再次开启
    原因没有继续查看.
    请相关人员查询自己代码部分.     特别是c绑定的东西.


    大家先不要动
    感觉是gio中 GDBusProxy 的bug,  在dbus-daemo挂了之后,如果用了这个类的就会挂
    不过python中用的dbus好像是glib-dbus的绑定吧?
    desktop挂的原因应该是glib的bug,我先跟踪跟踪


    原因找到了,

    一般dbus的封装库都会在bus_connection消失的时候主动把程序给干掉.

    主要用在session bus上, 一个会话结束的时候,方便结束当前程序.

    所以在system bus挂掉的时候, 任何使用dbus高级库的程序都可能被自己干掉.

    桌面程序考虑到实际情况(桌面会自己跟随session bus而自动退出) 所以对

    system dbus 应用了g_dbus_connection_set_exit_on_close调用,阻止desktop退出.

     这个应该属于系统组的bug了,  networking重启导致system bus挂掉

  • 相关阅读:
    Elastic 技术栈之快速入门
    JDK8 指南(译)
    Intellij IDEA 使用小结
    面向对象1
    函数总结
    Python中i = i + 1与i + = 1的区别
    python中变量的交换
    python的数据类型的有序无序
    对列表里的字典按年龄从小到大排序
    centos7安装python3
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3262912.html
Copyright © 2020-2023  润新知