Comment 16 for bug 1448418

Revision history for this message
Jaripekka Juhala (juhala) wrote :

The third command line given in post #4

dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1

actually DOES WORK if no other method has been used since login (the other two lines from post #4 or log out menu). It immedeately logs out, no dialog is presented.

I've tested the behaviour on my laptop (Thinkpad X61 Tablet) with an installed up-to-date Ubuntu Gnome 16.04, Ubuntu Gnome live cd 16.04.1, and Ubuntu live cd 16.04.1. In addition I've tested this on another, more modern computer (i5 etc.) with the live cd:s. It works always, unless one of the other methods is used first. In that case it behaves just as in the earlier posts.

For live cd:s I installed packages cairo-dock, compiz, and unity-settings-daemon. Ubuntu cd needed adding universe to sources.list to find cairo-dock. Then I created a new test user, logged out from the current session, and logged in with the test user. I tried the different command lines and log out menu, and if failed, forced logout ('killall gdm-x-session' or 'killall -9 gnome-session-binary') and tried again.

First and second command lines in post #4 seem to do something, as first run of either of these after login completes without error, though it does not actually log out.

Unfortunately it seems that currently editing log out applet settings to add a custom command line for logout does nothing, so no clean workaround there. (Command line for shutdown command doesn't work either, but switch user does.)

Hope this helps :)

command output examples:

$ gnome-session-quit --logout
1st run:
[nothing]
run after any method except the 3rd line:
** (gnome-session-quit:4081): WARNING **: Failed to call logout: GDBus.Error:org.gnome.SessionManager.NotInRunning: Logout interface is only available during the Running phase

$ dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:0
1st run:
method return time=1471195552.785564 sender=:1.6 -> destination=:1.87 serial=122 reply_serial=2
run after any method except the 3rd line:
Error org.gnome.SessionManager.NotInRunning: Logout interface is only available during the Running phase

$ dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:0
1st run (in addition to actually logging out):
method return time=1471187571.534848 sender=:1.5 -> destination=:1.82 serial=115 reply_serial=2
run after any other method:
Error org.gnome.SessionManager.NotInRunning: Logout interface is only available during the Running phase