## Name

loginctl — Control the systemd login manager

## Synopsis

`loginctl [OPTIONS...] {COMMAND} [NAME...]`

## Description

loginctl may be used to introspect and control the state of the systemd(1) login manager systemd-logind.service(8).

## 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.

`--no-ask-password`

  Don't query the user for authentication for privileged operations.

`--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), systemctl(1), systemd-logind.service(8), logind.conf(5)