DBus Finch/Pidgin 不带 X11
Posted
技术标签:
【中文标题】DBus Finch/Pidgin 不带 X11【英文标题】:DBus Finch/Pidgin without X11 【发布时间】:2011-07-28 16:22:52 【问题描述】:我想在我的服务器上编写一些 Python 脚本,我可以通过 DBus Python 库与 finch
(pidgin
的控制台界面,界面看起来像 links2
)进行通信,以发送消息或检查好友在线状态。
如果您在 X 中执行此操作有效。在 X 终端中运行 finch
并在另一个终端中运行 Python 脚本,没有错误/异常。
但是如果你这样做没有 X,你必须在 TTY1 (ctrl+alt+f1) 中运行 finch
,在 TTY2 (ctrl+alt+f2) 中运行 python 脚本,但是 python脚本将失败。
以下是脚本的前几行:
import dbus
bus = dbus.SessionBus() # gives EXCEPTION error
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
...
异常错误是:
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: dbus-launch failed to autolaunch D-Bus session: Autolaunch error: X11 initialization failed.`
我在某处读到,也许您需要在同一个 TTY 中运行 finch
和脚本。但是我无法正确测试它,因为它不像在一行上运行cd
而在下一行运行ls
。你输入finch
,它就会运行,你不能再输入任何其他命令,比如links2
。我尝试运行finch &
,但似乎暂停finch
,并且运行脚本也会出现同样的错误。
解决方案?谢谢。
【问题讨论】:
我基本上想运行一个脚本,它可以向某人发送消息或检查某人的状态而不需要 X。我可以通过 ssh 进入并运行该脚本。也许你可以给我一个替代解决方案,不一定需要涉及 finch 或 dbus。 感谢您提出问题并回答。 【参考方案1】:安装screen
dbus-launch screen
finch
ctrl+a c
python myscript
【讨论】:
这就是解决方案,暂时无法将其标记为我的答案,明天要做。 谢谢!我一直在寻找有关为什么我不能在无头系统上使用 gvfs 的问题。以这种方式启动 dbus 就成功了! 感谢您——您将我指向 dbus-launch 让我注意到后续不相关的终端可以通过设置 DBUS_SESSION_BUS_ADDRESS 环境变量连接到 dbus,这可能在 $DISPLAY 不可用时完成。 【参考方案2】:我认为 finch 需要一些展示。要在服务器上启动它,请尝试使用 xvfb-run:http://en.wikipedia.org/wiki/Xvfb
【讨论】:
不,finch 本身在没有 X 的情况下运行良好。 您确定 dbus-daemon 正在运行吗? (通常 x11 启动它) X11不启动dbus-daemon,dbus-daemon一般是桌面环境启动的。 它正在运行,但 dbus 和 finch 之间可能存在“断开连接”。只是猜测。以上是关于DBus Finch/Pidgin 不带 X11的主要内容,如果未能解决你的问题,请参考以下文章
从 DBUS org.freedesktop.dbus 和 java 获取数据 - org.freedesktop.DBus$Error$UnknownMethod: 方法不存在