没有X11的DBus Finch / Pidgin

时间:2011-04-03 15:32:39

标签: python x11 dbus finch pidgin

我想在我的服务器上做一些Python脚本,我可以通过DBus Python库与finchpidgin的控制台界面,界面看起来像links2)进行通信发送消息或检查好友在线状态。

如果您在X中执行此操作 。在X终端中运行finch并在另一个终端中运行Python脚本,没有错误/例外。

但如果你这样做没有X ,你必须在TTY1(ctrl + alt + f1)和TTY2中的python脚本(ctrl + alt + f2)中运行finch但是python脚本将失败

以下是该脚本的前几行:

import dbus
bus = dbus.SessionBus() # gives EXCEPTION error
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
...

EXCEPTION错误是:

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,运行脚本也会出现同样的错误。

解决方案?感谢。

2 个答案:

答案 0 :(得分:5)

安装screen

  1. dbus-launch screen
  2. finch
  3. ctrl + a c
  4. python myscript

答案 1 :(得分:0)

我认为雀科需要一些展示。要在服务器上启动它,请尝试使用 xvfb-run http://en.wikipedia.org/wiki/Xvfb