Subject: bug#27580: Fwd: bug#27580: Elogin doesn't start properly

From: William <[email-masked]>
Date: Tue, 11 Jul 2017 08:33:36 +0100

Thanks for looking at this Ludo.

In systemd the systemd-logind.service looks a little like this:
    [Service]
    ExecStart=/usr/lib/systemd/systemd-logind
    BusName=org.freedesktop.login1

It looks as though it simply executes the systemd-logind program.

Shouldn't our shepherd service simply execute elogind-program-wrapper?
This may also be right because elogind handles things like the laptop
lid being closed, which should be handled even if no one has logged in
yet.

Will

On 10 July 2017 at 23:21, Ludovic Courtès <[email-masked]> wrote:
> Hello,
>
> William <[email-masked]> skribis:
>
>> Elogind only starts when loginctl is executed as loginctl activates
>> elogind via DBus, meaning that it doesn't record any logins before
>> loginctl is run. I don't believe that this is intended; my Arch Linux
>> install doesn't miss any logins.
>
> I thought pam_elogind would trigger bus-activation but it does not,
> because of this:
>
>         /* Make this a NOP on non-logind systems */
>         if (!logind_running())
>                 return PAM_SUCCESS;
>
> where:
>
>   static inline bool logind_running(void) {
>           return access("/run/systemd/seats/", F_OK) >= 0;
>   }
>
> When the system is started, /run/systemd is empty, so pam_elogind
> directly returns success.
>
> I’m looking for a way to work around this; to be continued…
>
> Ludo’.
>
> PS: The problem does not happen with X and SLiM because they somehow
>     activate elogind before one has logged in.