elogind-246.10
Introduction to elogind
elogind is the systemd project's "logind", extracted out to
be a standalone daemon. It integrates with Linux-PAM-1.5.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-11.0
platform.
Package Information
elogind Dependencies
Required
dbus-1.12.20
Recommended
Linux-PAM-1.5.1 (required for Xorg),
Polkit-0.119 (runtime), docbook-xml-4.5,
docbook-xsl-1.79.2, and libxslt-1.1.34 (all three to build the man
pages)
Optional
For the tests: lxml-4.6.3, gobject-introspection-1.68.0,
zsh-5.8, Valgrind-3.17.0, audit-userspace,
bash-completion,
kexec,
and SELinux
User Notes: https://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]
In addition, some tests need the userspace cryptographic kernel
API, which is enabled with:
-*- Cryptographic API ---> [CONFIG_CRYPTO]
<M/*> Userspace cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
<M/*> User-space interface for hash algorithms [CONFIG_CRYPTO_USER_API_HASH]
Installation of elogind
Install elogind by running the
following commands:
sed -i '/Disable polkit/,+8 d' meson.build &&
mkdir build &&
cd build &&
meson --prefix=/usr \
--buildtype=release \
-Dcgroup-controller=elogind \
-Ddbuspolicydir=/etc/dbus-1/system.d \
-Dman=auto \
.. &&
ninja
To test the results, issue: ninja
test. A few tests are skipped if not run with
root
privileges.
Now, as the root
user:
ninja install &&
ln -sfv libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &&
ln -sfvn elogind /usr/include/systemd
Command Explanations
sed ... meson.build:
This change allows the package to be built without polkit being
installed (it is still a runtime dependency) but able to use polkit
after that package is installed.
-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.
-Dman=auto
: The default
value of this switch is false. Setting it to auto allows building and installing the
man pages if the recommended dependencies are installed.
-Ddefault-kill-user-processes=false
:
Configure whether the processes of a user should be killed when the
user logs out. The default is true, but this defeats the traditional
use of screen or
tmux. This can also
be changed in the configuration file (see below).
ln -s ...: These
commands install symlinks so that software packages find systemd
compatible library and headers.
Configuring elogind
Config File
/etc/elogind/logind.conf
Configuration Information
The installed file /etc/elogind/logind.conf
contains all the
possible options with their defaults, commented out. You may wish
to disable killing user processes when the user logs out, by
running, as the root
user:
sed -e '/\[Login\]/a KillUserProcesses=no' \
-i /etc/elogind/logind.conf
Each user will 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
EOF
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
EOF
Contents
Installed Programs:
busctl, elogind-inhibit, and
loginctl
Installed Library:
libelogind.so
Installed Directories:
/lib/elogind, /etc/elogind,
/usr/include/elogind, and /usr/share/doc/elogind-246.10
Short Descriptions
busctl
|
is used to introspect and monitor the D-Bus bus
|
elogind-inhibit
|
is used to execute a program with a shutdown, sleep or
idle inhibitor lock taken
|
loginctl
|
is used to introspect and control the state of the
elogind Login Manager
|
libelogind.so
|
is the main elogind utility library
|
Last updated on