Реальная проблема заключается в том, что переменные сеанса DBUS должны быть установлены и соответствовать сеансу, который вы пытаетесь контролировать.
Я создал этот скрипт, который устанавливает переменные сеанса DBUS из gnome- если вы хотите выйти из других пользователей / сеансов:
Как перезапустить Gnome-Shell из командной строки?
function logout() {
local USERNAME
export USERNAMES=( )
while [ -n "$1" ]; do case "$1" in
-* ) break ;;
*) USERNAMES+=( "$1" ); shift ;;
esac; done
for USERNAME in "${USERNAMES[@]}"; do
local SESSION_PID=$(pgrep -fu "$USERNAME" gnome-session|head -1)
if [ -n "$SESSION_PID" ]; then
(
sudo -u "$USERNAME" cat "/proc/$SESSION_PID/environ" | xargs -0 -n 1 echo export
echo "gnome-session-quit --logout $@"
) | sudo -u "$USERNAME" sh -;
fi
done
}