DBus Finch/Pidgin без X11

Я хочу выполнить несколько сценариев Python на своем сервере, где я могу общаться с finch (консольный интерфейс pidgin, с интерфейсом, похожим на links2) через библиотеку DBus Python для отправки сообщений или проверки онлайн-статуса друга.

Это работает, если вы делаете это в X. Запустите finch в X-терминале и запустите скрипт Python в другом терминале без ошибок/исключений.

Но если вы сделаете это без X, вам придется запустить finch в TTY1 (ctrl+alt+f1) и скрипт Python в TTY2 (ctrl+alt+f2), но скрипт 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, и запуск скрипта также дает ту же ошибку.

Решение? Спасибо.


person Robin    schedule 03.04.2011    source источник
comment
В основном я хочу запустить скрипт, который отправляет кому-то сообщения или проверяет чей-то статус, не требуя X. Просто что-то, во что я могу подключиться по ssh и запустить скрипт. Может быть, вы можете дать мне альтернативное решение, которое не обязательно должно включать finch или dbus.   -  person Robin    schedule 04.04.2011
comment
Спасибо, что задали вопрос и ответили на него.   -  person ShreevatsaR    schedule 17.08.2011


Ответы (2)


Установить screen

  1. dbus-launch screen
  2. finch
  3. ctrl+а с
  4. python myscript
person Robin    schedule 04.04.2011
comment
Так что это решение, не могу пометить это как мой ответ на данный момент, должен сделать это завтра. - person Robin; 04.04.2011
comment
Благодарю вас! Я несколько дней искал, почему я не могу использовать gvfs в безголовой системе. Запуск dbus таким образом сделал свое дело! - person dotnix; 18.03.2012
comment
Спасибо за это - ваше указание мне на dbus-launch заставило меня заметить, что последующие несвязанные терминалы могут подключаться к dbus, устанавливая переменную среды DBUS_SESSION_BUS_ADDRESS, которая предположительно выполняет работу, когда $DISPLAY недоступен. - person gra; 14.09.2020

Я думаю, что финчу нужна демонстрация. Чтобы запустить его на сервере, попробуйте использовать xvfb-run: http://en.wikipedia.org/wiki/Xvfb

person Alexander    schedule 03.04.2011
comment
Нет, сам finch без X работает нормально. - person Robin; 04.04.2011
comment
Вы уверены, что запущен демон dbus? (обычно x11 запускает его) - person Alexander; 04.04.2011
comment
X11 не запускает dbus-daemon, dbus-daemon обычно запускается средой рабочего стола. - person datenwolf; 04.04.2011
comment
Он работает, но, возможно, есть «разрыв» между dbus и finch. Просто угадаю. - person Robin; 04.04.2011