---
name: "systemd-loginctl"
section: "1"
platform: "linux"
package: "systemd"
version: "44-11+deb7u4"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/systemd-loginctl"
---

# systemd-loginctl(1)

Control the systemd login manager

## NAME

systemd-loginctl - Control the systemd login manager

## SYNOPSIS

**systemd-loginctl \[OPTIONS...\] {COMMAND} \[NAME...\]**

## DESCRIPTION

**systemd-loginctl** may be used to introspect and control the state of the [**systemd**(1)](/systemd/1.md) login manager.

## OPTIONS

The following options are understood:

- **--help**, **-h**

  Prints a short help text and exits.

- **--version**

  Prints a short version string and exits.

**--property=**, **-p**

When showing session/user/ properties, limit display to certain properties as specified as argument. If not specified all set properties are shown. The argument should be a property name, such as Sessions. If specified more than once all properties with the specified names are shown.

- **--all**, **-a**

  When showing unit/job/manager properties, show all properties regardless whether they are set or not.

- **--no-pager**

  Do not pipe output into a pager.

**--kill-who=**

When used with **kill-session**, choose which processes to kill. Must be one of **leader**, or **all** to select whether to kill only the leader process of the session or all processes of the session. If omitted defaults to **all**.

**--signal=**, **-s**

When used with **kill-session** or **kill-user**, choose which signal to send to selected processes. Must be one of the well known signal specifiers such as SIGTERM, SIGINT or SIGSTOP. If omitted defaults to **SIGTERM**.

- **-H**, **--host**

  Execute operation remotely. Specify a hostname, or username and hostname separated by @, to connect to. This will use SSH to talk to the remote login manager instance.

- **-P**, **--privileged**

  Acquire privileges via PolicyKit before executing the operation.

The following commands are understood:

**list-sessions**

List current sessions.

**session-status \[ID...\]**

Show terse runtime status information about one or more sessions. This function is intended to generate human-readable output. If you are looking for computer-parsable output, use **show-session** instead.

**show-session \[ID...\]**

Show properties of one or more sessions or the manager itself. If no argument is specified properties of the manager will be shown. If a session ID is specified properties of the session is shown. By default, empty properties are suppressed. Use **--all** to show those too. To select specific properties to show use **--property=**. This command is intended to be used whenever computer-parsable output is required. Use **session-status** if you are looking for formatted human-readable output.

**activate \[ID...\]**

Activate one or more sessions. This brings one or more sessions into the foreground, if another session is currently in the foreground on the respective seat.

**lock-session \[ID...\]**, **unlock-session \[ID...\]**

Activates/deactivates the screen lock on one or more sessions, if the session supports it.

**terminate-session \[ID...\]**

Terminates a session. This kills all processes of the session and deallocates all resources attached to the session.

**kill-session \[ID...\]**

Send a signal to one or more processes of the session. Use **--kill-who=** to select which process to kill. Use **--signal=** to select the signal to send.

**list-users**

List currently logged in users.

**user-status \[USER...\]**

Show terse runtime status information about one or more logged in users. This function is intended to generate human-readable output. If you are looking for computer-parsable output, use **show-user** instead. Users may be specified by their usernames or numeric user IDs.

**show-user \[USER...\]**

Show properties of one or more users or the manager itself. If no argument is specified properties of the manager will be shown. If a user is specified properties of the user is shown. By default, empty properties are suppressed. Use **--all** to show those too. To select specific properties to show use **--property=**. This command is intended to be used whenever computer-parsable output is required. Use **user-status** if you are looking for formatted human-readable output.

**enable-linger \[USER...\]**, **disable-linger \[USER...\]**

Enable/disable user lingering for one or more users. If enabled for a specific user a user manager is spawned for him/her at boot, and kept around after logouts. This allows users who aren't logged in to run long-running services.

**terminate-user \[USER...\]**

Terminates all sessions of a user. This kills all processes of all sessions of the user and deallocates all runtime resources attached to the user.

**kill-user \[USER...\]**

Send a signal to all processes of a user. Use **--signal=** to select the signal to send.

**list-seats**

List currently available seats on the local system.

**seat-status \[NAME...\]**

Show terse runtime status information about one or more seats. This function is intended to generate human-readable output. If you are looking for computer-parsable output, use **show-seat** instead.

**show-seat \[NAME...\]**

Show properties of one or more seats or the manager itself. If no argument is specified properties of the manager will be shown. If a seat is specified properties of the seat are shown. By default, empty properties are suppressed. Use **--all** to show those too. To select specific properties to show use **--property=**. This command is intended to be used whenever computer-parsable output is required. Use **seat-status** if you are looking for formatted human-readable output.

**attach \[NAME\] \[DEVICE...\]**

Attach one or more devices to a seat. The devices should be specified via device paths in the /sys file system. To create a new seat attach at least one graphics card to a previously unused seat names. seat names may consist only of a-z, A-Z, 0-9, "-" and "\_" and must be prefixed with "seat". To drop assignment of a device to a specific seat just reassign it to a different seat, or use **flush-devices**.

**flush-devices**

Removes all device assignments previously created with **attach**. After this call only automatically generated seats will remain and all seat hardware is assigned to them.

**terminate-seat \[NAME...\]**

Terminates all sessions on a seat. This kills all processes of all sessions on a seat and deallocates all runtime resources attached to them.

## EXIT STATUS

On success 0 is returned, a non-zero failure code otherwise.

## ENVIRONMENT

*$SYSTEMD\_PAGER*

Pager to use when **--no-pager** is not given; overrides *$PAGER*. Setting this to an empty string or the value cat is equivalent to passing **--no-pager**.

## SEE ALSO

[**systemd**(1)](/systemd/1.md), [**systemctl**(1)](/systemctl/1.md), [**systemd-logind.conf**(5)](/systemd-logind.conf/5.md)

## AUTHOR

**Lennart Poettering** \<lennart@poettering.net\>

Developer
