[LightDM] systemd cooperation

Martin Briza mbriza at redhat.com
Tue Oct 30 03:52:28 PDT 2012


Hello everybody,

lately I was putting together LightDM with KDE in Fedora and stumbled upon  
a few things that bug me. As you may know, we deprecated ConsoleKit in  
Fedora 17 in favor of systemd-logind which brings us some problems. Would  
you please answer me a quick question I have regarding this?

Before I start: I wasn't able to find a "verbose" documentation with a  
in-depth description of how exactly is LightDM structured. If there is  
such thing, I'd highly appreciate that, as it would make understanding  
everything much easier.

What I'm facing is this:
We in Fedora have a patch in kde-workspace removing ConsoleKit calls and  
replacing them with appropriate ones to systemd, so basically, at least in  
the concerns I'm describing here, the behavior should be the same.
As you might be guessing It is not. :) The behavior is as follows:
  1) log in as user1 (this creates a session on VT1)
  2) create a new session for user2 (session on VT2)
  3) switch to user1 (this calls Activate on the session in both CK and  
logind)
  4) log out as user1 - system gets stuck, no new greeter is created, just  
a black screen, can't even switch to VT2
Interesting thing in this is the fact that when I select creating a new  
session (which calls SwitchToGreeter on the LightDM bus) and then select  
the existing session, everything works fine. I interpret this to myself as  
LightDM is tracking which user is currently active and properly terminates  
his session when it ends but can't handle end of session that is not  
active.
What I don't understand in this is: It works with ConsoleKit so I thought:  
LightDM is listening to signals emitted by CK and tracks active sessions  
using them. Well, I couldn't find any signs of LightDM using this but  
maybe I wasn't looking good enough.
So, please, how exactly does LightDM handle session tracking?

Thank you in advance
Martin Briza


More information about the LightDM mailing list