I'm seeing the same problem (on multiple systems), and have been looking at the lightdm and unity-greeter log files in an attempt to understand what is going on. Some additional observations: * I see three processes survive the termination of the greeter session: init (aka Upstart), indicator-sound-service and indicator-bluetooth-service. The following children of the init process do terminate: indicator-messages-service, indicator-power-service, indicator-datetime-service, indicator-session-service, indicator-application-service. * If I send a SIGTERM to the surviving indicator-sound-service and/or indicator-bluetooth-service, the init process respawns a new one, and the event is logged in /var/log/lightdm/x-N-greeter.log(.old) . To fully get rid of the session I need to kill (-TERM is enough) the init process. If I do so, the children go away too. * The aforementioned greeter log does *not* say "DEBUG: Cleaning up" as I would have expected from reading the source code (and as seems to be happening on initial login). It does not say "DEBUG: unity-greeter.vala:605: Got a SIGTERM" either. Instead, I see: ---begin log excerpt--- init: indicator-bluetooth main process (21833) killed by TERM signal init: indicator-bluetooth main process ended, respawning init: indicator-power main process (21834) killed by TERM signal init: indicator-power main process ended, respawning ** (unity-settings-daemon:21845): WARNING **: Name taken or bus went away - shutting down init: indicator-datetime main process (21836) killed by TERM signal init: indicator-datetime main process ended, respawning init: indicator-sound main process ended, respawning init: indicator-session main process (21853) killed by TERM signal init: indicator-session main process ended, respawning init: indicator-application main process (21854) killed by TERM signal init: indicator-application main process ended, respawning init: indicator-messages main process ended, respawning init: indicator-power main process ended, respawning init: indicator-datetime main process ended, respawning init: indicator-session main process ended, respawning init: indicator-application main process ended, respawning init: indicator-messages respawning too fast, stopped init: indicator-session respawning too fast, stopped init: indicator-power main process ended, respawning init: indicator-datetime respawning too fast, stopped init: indicator-application respawning too fast, stopped init: indicator-power main process ended, respawning init: indicator-power main process ended, respawning init: indicator-power main process ended, respawning init: indicator-power main process ended, respawning init: indicator-power main process ended, respawning init: indicator-power main process ended, respawning init: indicator-power main process ended, respawning init: indicator-power respawning too fast, stopped [+1548,34s] WARNING: unity-greeter: Fatal IO error 11 (Resource temporarily unavailable) on X server :1. (unity-settings-daemon:21845): Gdk-WARNING **: unity-settings-daemon: Fatal IO error 2 (No such file or directory) on X server :1. ---end log excerpt--- (+1548,34s is 0.13 seconds after authentication completion. The comma is normal for this system's locale.) So it looks like unity-greeter is either not being sent, or not reacting to, SIGTERM. It does exit, obviously, but perhaps only as a side effect of the X server being shut down. According to /var/log/lightdm/lightdm.log a SIGTERM was sent to the "lightdm --session-child" process.