Подключение к dbus через TCP

Я написал простую программу на Python для воспроизведения и приостановки музыкального проигрывателя банши. Пока он работает на моей собственной машине, у меня возникают проблемы с удаленным компьютером, подключенным к тому же маршрутизатору (LAN). Я отредактировал session.conf удаленной машины, чтобы добавить эту строку:

<listen>tcp:host=localhost,port=12434</listen>

и вот моя программа:

    import dbus


    bus_obj=dbus.bus.BusConnection("tcp:host=localhost,port=12434")
    proxy_object=bus_obj.get_object('org.bansheeproject.Banshee',                              
    '/org/bansheeproject/Banshee/PlayerEngine')

    playerengine_iface=dbus.Interface(proxy_object,
    dbus_interface='org.bansheeproject.Banshee.PlayerEngine')

    var=0

    while (var!="3"):
        var=raw_input("\nPress\n1 to play\n2 to pause\n3 to exit\n")


            if var=="1":
                print "playing..."
                playerengine_iface.Play()

            elif var=="2":
                print "pausing"
                playerengine_iface.Pause()

Вот что я получаю, когда пытаюсь ее выполнить

Traceback (most recent call last):
  File "dbus3.py", line 4, in <module>
    bus_obj=dbus.bus.BusConnection("tcp:host=localhost,port=12434")
  File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 125, in __new__
    bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoServer: Failed to connect to socket "localhost:12434" Connection refused

Что я здесь делаю неправильно? я должен отредактировать /usr/lib/python2.7/dist-packages/dbus/bus.py

UPDATE:

хорошо, вот сделка когда я добавляю

<listen>tcp:host=192.168.1.7,port=12434</listen>

в /etc/dbus-1/session.conf, затем перезагружаюсь, надеясь, что он начнет слушать при перезагрузке, Никогда не загружается. Он зависает на экране загрузки, и иногда мигает черный экран со следующим текстом :

Pulseaudio Configured For Per-user Sessions Saned Disabled;edit/etc/default/saned

, поэтому, когда я нажимаю ctrl+alt+f1, изменяю session.conf в исходное состояние и перезагружаюсь, он загружается правильно.

О чем все это? Как я могу заставить демон dbus прослушивать tcp-соединения, не сталкиваясь с проблемами?

21
задан Dale E. Moore 26 January 2013 в 14:20
поделиться