I have tested and found that:
In lightdm-gtk-greeter, the following line run success and return no session. items = lightdm_get_sessions (); But, in lightdm, the following function in liblightdm-gobject/session.c is not called: /** * lightdm_get_sessions: * * Get the available sessions. * * Return value: (element-type LightDMSession) (transfer none): A list of #LightDMSession **/ GList * lightdm_get_sessions (void) { g_debug ("Run lightdm_get_sessions"); update_sessions (); return local_sessions; } I do not know why, seem to very confuse. --