Greg Trounson wrote:
I've since verified that this happens irrespective of the user (root
or otherwise) and the video driver ('radeon', 'vesa', or 'vga').
While I haven't entirely reached the bottom of this problem my
colleague has identified a workaround:
When someone logs out of a GNOME session, it tries to read the
~/.gnome2/xsession file. If this file is not populated (just the
presence of an empty file with this name is NOT enough), then the
session will stall for 2-3 minutes on logout. (Curiously, killing X
at this stage also kills gdm. This doesn't happen at any other time.)
If you click "Save session" in the logout dialogue, the session will
still freeze, but it will be the last time. All subsequent
login/logouts go without a hitch. It is this process that creates and
populates the ~/.gnome2/xsession file.
Unfortunately this means that for every user, they are guaranteed at
least one stalled logout. I tried putting a template in /etc/skel,
but the file has many references to absolute home directory paths (eg
/root), and it doesn't seem to parse the "~" ("current user home
directory") character.
This strongly points to a bug in GNOME.
Greg
This is very interesting, indeed... What about referencing the shell
variable {$HOME} instead of '~/'? Will work basically the same
regardless of the user, and since it is a shell variable, its value
should be readable whenever called.