Я новичок в dbus (использую Ubuntu 14.04, Unity). Итак, я вошел под пользователем A, создал процесс как пользователь B, и этот процесс создает сеанс для пользователя B, теперь я хочу использовать сообщения dbus для завершения сеанса этого процесса для пользователя B. Я хочу, чтобы мой процесс работал в каждой среде рабочего стола. Поэтому я загрузил инструмент под названием d-feet
, и начал играть с ним, я заметил, что каждый раз, когда в системе создается сеанс, /org/freedesktop/User/1002
он добавляется (1002 - это UID для пользователя B) в org.freedesktop.login1
.
Поэтому я попытался запустить:
sudo dbus-send --type=method_call --print-reply --system --dest=org.freedesktop.login1 /org/freedesktop/login1/user/1000 org.freedesktop.login1.User.Terminate
Но он выдает мне ошибку, говорящую Error org.freedesktop.DBus.Error.UnknownObject: Unknown user
, что я использовал ctr+alt+f1
вход как пользователь B, запустил startx
и из пользователя As desktop я использовал ту же команду, он выдает ошибку, говорящую, 'GDBus.Error:org.freedesktop.DBus.Error.UnknownObject: Permission Denied'
что на этот раз это работает (завершает сеанс). Я немного запутался. Надеюсь, вы сможете помочь. Спасибо.