This is usually necessary for a graphical session. In most cases,
elogind performs the task.
This is an environment variable and path that many services and
applications rely on, particularly those that use
XDG_RUNTIME_DIR environment variable’s value is a path. The
path is created when the user logs in, and is deleted when last
login logs out, unless there are lingering services for the user.
The typical value is
UID is the user ID
of the user.
In most distributions that use systemd, the env var is set by the
pam_systemd module, with
logind creating it as it keeps track
of the login. In many non-systemd distributions, the same task is
elogind has this functionality disabled. Instead, it
is created and tracked by the
turnstile session tracking system.
That means whichever solution you use for seat management, you will
always have your runtime directory managed by
The main reason for this is that when using the “linger” option with
user services, the directory needs to remain there as long as the
services are running, which is not possible to reliably ensure with
elogind unless you set the linger bit separately in
(and even that does not cover all cases).
The other main reason is convenience, as it means a single solution for all seat management daemons.
In general you currently have two options as far as seat daemons
go. Note that things which use
libseat will work with both options;
this includes Wayland compositors based on
wlroots aand Weston,
as well as Xorg (but not necessarily things using Xorg).
elogind daemon manages user logins as well as auxiliary tasks
such as system power handling. Big desktops will require
particularly GNOME requires it.
If installed, it comes with default service links. That means most
users will get it out of box. It is also a dependency of
It is the recommended solution; avoiding it is at your own risk.
Some setups can use an alternative to
elogind in form of
particularly some specific Wayland compositors such as Weston and
those based on the
Keep in mind that
seatd very much conflicts with
ensure that only one is running. You will need to manually enable
seatd service. The daemon also does much less than
does, so e.g. system power management is not handled by it.