我想在我的服务器上编写一些Python脚本,在那里我可以通过DBus Python库与finch
(控制台接口pidgin
,接口看起来像links2
)通信,以发送消息或检查buddy online状态。
如果您在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
,运行脚本也会产生同样的错误。解决方案?谢谢。
最佳答案
安装screen
dbus-launch screen
finch
ctrl+AC键python myscript