Introduction to elogind

elogind is the systemd project's "logind", extracted out to be a standalone daemon. It integrates with Linux-PAM-1.3.1 to know the set of users that are logged in to a system and whether they are logged in graphically, on the console, or remotely. Elogind exposes this information via the standard org.freedesktop.login1 D-Bus interface, as well as through the file system using systemd's standard /run/systemd layout.

This package is known to build and work properly using an LFS-9.0 platform.

Package Information

elogind Dependencies





For the tests: lxml-4.4.1, gobject-introspection-1.60.2, zsh-5.7.1, Valgrind-3.15.0, audit-userspace, bash-completion, kexec, and SELinux

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/elogind

Kernel Configuration

Enable the following options in the kernel configuration and recompile the kernel if necessary:

General setup --->
    [*]     Control Group support                        [CONFIG_CGROUPS]
File systems --->
    [*]     Inotify support for userspace                [CONFIG_INOTIFY_USER]
            Pseudo filesystems --->
                [*]    Tmpfs POSIX Access Control Lists  [CONFIG_TMPFS_POSIX_ACL]

Installation of elogind

Install elogind by running the following commands:

mkdir build &&
cd    build &&

meson --prefix=/usr                        \
      --sysconfdir=/etc                    \
      --localstatedir=/var                 \
      -Dcgroup-controller=elogind          \
      -Ddbuspolicydir=/etc/dbus-1/system.d \
      ..  &&

This package does not come with a test suite.

Now, as the root user:

ninja install                                         &&
ln -sfv  libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &&
ln -sfvn elogind /usr/include/systemd

Command Explanations

-Dcgroup-controller=elogind: This switch ensures that elogind is selected as the cgroup controller, even if booted with another running cgroup controller.

-Ddbuspolicydir=/etc/dbus-1/system.d: This switch sets the location of the D-Bus policy directory.

ln -s ...: These commands install symlinks so that software packages find systemd compatible library and headers.

Configuring elogind

To automatically start elogind when the system is rebooted, install the /etc/rc.d/init.d/mountcgroupfs and /etc/rc.d/init.d/elogind bootscripts from the blfs-bootscripts-20190609 package.

make install-elogind

Note that this boot script only starts the system-wide elogind daemon. Each user will also need to register a user session using Linux-PAM at login. The /etc/pam.d/system-session file needs to be modified and a new file needs to be created in order for elogind to work correctly. Run the following commands as the root user:

cat >> /etc/pam.d/system-session << "EOF" &&
# Begin elogind addition
session  required    pam_loginuid.so
session  optional    pam_elogind.so

# End elogind addition
cat > /etc/pam.d/elogind-user << "EOF"
# Begin /etc/pam.d/elogind-user

account  required    pam_access.so
account  include     system-account

session  required    pam_env.so
session  required    pam_limits.so
session  required    pam_unix.so
session  required    pam_loginuid.so
session  optional    pam_keyinit.so force revoke
session  optional    pam_elogind.so

auth     required    pam_deny.so
password required    pam_deny.so

# End /etc/pam.d/elogind-user


Installed Programs: busctl, elogind-inhibit, and loginctl
Installed Library: libelogind.so
Installed Directories: /etc/elogind, /usr/include/elogind, and /usr/share/doc/elogind-241.3

Short Descriptions


is used to introspect and monitor the D-Bus bus.


is used to execute a program with a shutdown, sleep or idle inhibitor lock taken.


is used to introspect and control the state of the elogind Login Manager.


is the main elogind utility library.

Last updated on 2019-08-20 12:09:08 -0700