Я написал скрипт, который подключается к сеансной шине d-bus на удаленном компьютере, например:
os.environ["DBUS_SESSION_BUS_ADDRESS"] = "tcp:host=192.168.0.1,port=1234"
bus = dbus.SessionBus()
Это прекрасно работает, за исключением того, что теперь мне нужно иметь возможность подключаться к нескольким шинам сеансов на разных компьютерах. Я пробовал следующее:
os.environ["DBUS_SESSION_BUS_ADDRESS"] = "tcp:host=192.168.0.1,port=1234"
bus1 = dbus.SessionBus()
os.environ["DBUS_SESSION_BUS_ADDRESS"] = "tcp:host=192.168.0.2,port=1234"
bus2 = dbus.SessionBus()
Но это не работает. Второй вызов SessionBus возвращает тот же объект, что и первый вызов. то есть. в этом случае оба объекта ссылаются на шину сеанса на 192.168.0.1.
Кажется, что только первый вызов SessionBus действительно что-то делает, и все последующие вызовы просто возвращают объект, который был создан при первом вызове. Кто-нибудь знает способ обойти это?