2

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

如果您在 X 中执行此操作,则此方法有效finch。在 X 终端中运行并在另一个终端中运行 Python 脚本,没有错误/异常。

但是如果你在没有 X的情况下这样做,你必须finch在 TTY1 (ctrl+alt+f1) 和 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.`

我在某处读到,也许您需要finch在同一个 TTY 中运行脚本和脚本。但是我无法正确测试它,因为它不像cd在一行和ls下一行运行。您输入finch,它运行,并且您不能再输入任何其他命令,例如links2. 我尝试运行finch &,但似乎暂停finch,并且运行脚本也给出了相同的错误。

解决方案?谢谢。

4

2 回答 2

6

安装screen

  1. dbus-launch screen
  2. finch
  3. ctrl+ac
  4. python myscript
于 2011-04-04T12:36:53.343 回答
0

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

于 2011-04-03T19:11:14.580 回答