【问题标题】:org.gnome.SessionManager in Ubuntu 12.04 chrootUbuntu 12.04 chroot 中的 org.gnome.SessionManager
【发布时间】:2012-10-21 16:54:26
【问题描述】:

我正在尝试在最小的 chroot 中测试图腾(主机和 chroot 都是 ubuntu 12.04 amd64)。当我加载视频时,我收到错误

** (totem:25660): WARNING **: Problem inhibiting the screensaver: GDBus.Error:
org.freedesktop.DBus.Error.NameHasNoOwner: Name "org.gnome.SessionManager" does not exist

确实,在观看视频时屏幕会关闭(会话空闲)。为了确认,我用python测试了:

>>> import dbus
>>> bus = dbus.SessionBus()
>>> bus.get_object('org.gnome.SessionManager','/org/gnome/SessionManager')

并得到错误

dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name
org.gnome.SessionManager was not provided by any .service files

有谁知道哪些包会在 chroot 中提供 dbus 接口 org.gnome.SessionManager?对此进行搜索后,我尝试了 gnome-session、gnome-session-common 和 gnome-session-bin 均无济于事。

通过在packages.ubuntu.com 和完整的 12.04 系统上进行搜索,这些系统都可以正常工作,似乎没有任何包提供名为 org.gnome.SessionManager.service 的文件,所以它在寻找什么 .service 文件为了?。

【问题讨论】:

    标签: ubuntu-12.04 dbus chroot gnome-3 totem


    【解决方案1】:

    在该服务正在运行的系统上,您可以通过像这样查询总线来查找:

    $ qdbus org.freedesktop.DBus / org.freedesktop.DBus.GetNameOwner org.kde.klipper
    :1.82
    $ qdbus org.freedesktop.DBus / org.freedesktop.DBus.GetConnectionUnixProcessID :1.82
    1441
    $ readlink /proc/1441/exe
    /usr/bin/kdeinit4
    $ rpm -qf /usr/bin/kdeinit4           # in your case dpkg -S /path/to/program
    kdelibs4-4.7.2-5.5.1.x86_64
    

    【讨论】:

    • 这些步骤和你说的完全一样。但是,他们返回到可执行文件/usr/bin/gnome-session,它位于包gnome-session-bin 中。这似乎是正确的答案,但正如我之前提到的,由于某种原因,单独的 gnome-session 包并没有做到这一点。
    猜你喜欢
    • 2014-05-01
    • 2012-05-31
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 2015-03-28
    相关资源
    最近更新 更多