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

From: [email-masked] (Ludovic Courtès)
Date: Tue, 11 Jul 2017 00:21:37 +0200

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.