systemd-logind is a system service that manages user logins. It is
•Keeping track of users and sessions, their
processes and their idle state. This is implemented by allocating a systemd
slice unit for each user below user.slice, and a scope unit below it for each
concurrent session of a user. Also, a per-user service manager is started as
system service instance of user@.service for each logged in user.
•Generating and managing session IDs. If auditing
is available and an audit session ID is already set for a session, then this
ID is reused as the session ID. Otherwise, an independent session counter is
•Providing polkit-based access for users
for operations such as system shutdown or sleep
•Implementing a shutdown/sleep inhibition logic
•Handling of power/sleep hardware keys
•Session switch management
•Device access management for users
•Automatic spawning of text logins (gettys) on
virtual console activation and user runtime directory management
User sessions are registered with logind via the
pam_systemd(8) PAM module.
See logind.conf(5) for information about the configuration
of this service.
See sd-login(3) for information about the basic concepts of
logind such as users, sessions and seats.
See org.freedesktop.login1(5) and
org.freedesktop.LogControl1(5) for information about the D-Bus APIs
For more information on the inhibition logic see the Inhibitor
Lock Developer Documentation.
If you are interested in writing a display manager that makes use
of logind, please have look at Writing Display Managers. If you
are interested in writing a desktop environment that makes use of logind,
please have look at Writing Desktop Environments.