我想在我的服務器上執行一些Python腳本,我可以通過DBus Python庫與finch
(控制檯界面pidgin
,界面看起來像links2
)通信,以發送消息或檢查好友在線狀態。DBus Finch/Pidgin without X11
This works if you do it in X.在X終端運行finch
並在另一個終端中運行Python腳本,沒有錯誤/異常。
但是,如果你這樣做沒有X,你必須在TTY1(CTRL + ALT + F1)和TTY2的python腳本(Ctrl + Alt + F2),但python腳本將失敗運行finch
。
以下是腳本的前幾行:
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
,並且運行該腳本也會出現相同的錯誤。
解決方案?謝謝。
我基本上想跑步一個腳本,它可以向某人發送消息或者檢查某人的狀態,而不需要X.只需要一些我可以進入並運行該腳本的東西。也許你可以給我一個替代解決方案,而不一定要涉及雀或dbus。 – Robin 2011-04-04 11:19:21
感謝您提出問題並回答問題。 – ShreevatsaR 2011-08-17 10:10:17