Using loginctl (with examples)
- Linux
- November 5, 2023
The loginctl
command is a powerful tool for managing the systemd login manager. It allows you to list and manipulate user sessions and properties. In this article, we will explore several different use cases of the loginctl
command, along with code examples and explanations.
Use Case 1: Print all current sessions
To print all current sessions, you can use the list-sessions
option:
loginctl list-sessions
Motivation: This use case can be helpful when you want to see all active user sessions on your system. It allows you to quickly identify the logged-in users and their session IDs.
Explanation: The list-sessions
option lists all active user sessions on the system. It provides information such as session ID, user, seat, and the timestamp of the last activity.
Example Output:
SESSION UID USER SEAT TTY
19 1000 john.doe seat0 tty2
22 1001 jane.smith seat1 tty3
Use Case 2: Print all properties of a specific session
To print all properties of a specific session, you can use the show-session
option with the session ID:
loginctl show-session session_id --all
Motivation: This use case allows you to retrieve detailed information about a specific session. It can be useful for troubleshooting session-related issues or gathering session data for analysis.
Explanation: The show-session
option displays properties of a specific session. By providing the session ID, you can retrieve detailed information such as user, seat, session type, active state, and more.
Example Output:
Id=session_id
User=john.doe
Name=session
Timestamp=Tue 2021-04-20 09:15:32 PDT
State=active
Use Case 3: Print all properties of a specific user
To print all properties of a specific user, you can use the show-user
option with the username:
loginctl show-user username
Motivation: This use case allows you to obtain information about a specific user, such as their login sessions, session state, and seat assignment. It can be helpful for monitoring user activity or troubleshooting user-related issues.
Explanation: The show-user
option displays properties of a specific user. By providing the username, you can retrieve information such as login sessions, session state, seat assignment, and more.
Example Output:
John Doe:
Sessions: 19
State: online
Seat: seat0
Use Case 4: Print a specific property of a user
To print a specific property of a user, you can use the show-user
option with the --property
argument:
loginctl show-user username --property=property_name
Motivation: This use case allows you to retrieve a specific property of a user, such as their state or seat assignment. It can be useful when you only need to access a particular piece of information about a user.
Explanation: The show-user
option, when combined with the --property
argument, helps you retrieve a specific property of a user. By providing the username and the property name, you can quickly access the desired information.
Example Output:
State=online
Use Case 5: Execute a loginctl
operation on a remote host
To execute a loginctl
operation on a remote host, you can use the -H
option followed by the hostname:
loginctl list-users -H hostname
Motivation: This use case is useful when you want to manage user sessions on a remote host without physically accessing it. It allows administrators to control and monitor user sessions on remote systems efficiently.
Explanation: By leveraging the -H
option and specifying the hostname, you can execute loginctl
commands on a remote host. This enables you to interact with the login manager of the remote system and retrieve information or perform actions remotely.
Example Output:
USER SESSIONS
john.doe 19
jane.smith 22
With the examples provided above, you should now have a solid understanding of how to use the loginctl
command to manage user sessions and properties. Whether you need to retrieve information about specific sessions or control user activity on remote hosts, loginctl
is a versatile tool that can assist you in managing the systemd login manager efficiently.