systemd-logind is a system service that manages user logins. It is responsible for:
-
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@.servicefor 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 used.
-
Providing polkit-based access for users for operations such as system shutdown or sleep
-
Implementing a shutdown/sleep inhibition logic for applications
-
Handling of power/sleep hardware keys
-
Multi-seat management
-
Session switch management
-
Device access management for users
-
Automatic spawning of text logins (gettys) on virtual console activation and user runtime directory management
-
Scheduled shutdown
-
Sending “wall” messages