'\" t .TH "LOGINCTL" "1" "" "elogind 246.9.1" "loginctl" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" loginctl \- Control the elogind login manager .SH "SYNOPSIS" .HP \w'\fBloginctl\fR\ 'u \fBloginctl\fR [OPTIONS...] {COMMAND} [NAME...] .PP /lib/elogind/system\-shutdown .PP /lib/elogind/system\-sleep .SH "DESCRIPTION" .PP \fBloginctl\fR may be used to introspect and control the state of the \fBelogind\fR(8) login manager .SH "COMMANDS" .PP The following commands are understood: .SS "Session Commands" .PP \fBlist\-sessions\fR .RS 4 List current sessions\&. .RE .PP \fBsession\-status\fR [\fIID\fR\&...] .RS 4 Show terse runtime status information about one or more sessions, followed by the most recent log data from the journal\&. Takes one or more session identifiers as parameters\&. If no session identifiers are passed, the status of the caller\*(Aqs session is shown\&. This function is intended to generate human\-readable output\&. If you are looking for computer\-parsable output, use \fBshow\-session\fR instead\&. .RE .PP \fBshow\-session\fR [\fIID\fR\&...] .RS 4 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 are shown\&. By default, empty properties are suppressed\&. Use \fB\-\-all\fR to show those too\&. To select specific properties to show, use \fB\-\-property=\fR\&. This command is intended to be used whenever computer\-parsable output is required\&. Use \fBsession\-status\fR if you are looking for formatted human\-readable output\&. .RE .PP \fBactivate\fR [\fIID\fR] .RS 4 Activate a session\&. This brings a session into the foreground if another session is currently in the foreground on the respective seat\&. Takes a session identifier as argument\&. If no argument is specified, the session of the caller is put into foreground\&. .RE .PP \fBlock\-session\fR [\fIID\fR\&...], \fBunlock\-session\fR [\fIID\fR\&...] .RS 4 Activates/deactivates the screen lock on one or more sessions, if the session supports it\&. Takes one or more session identifiers as arguments\&. If no argument is specified, the session of the caller is locked/unlocked\&. .RE .PP \fBlock\-sessions\fR, \fBunlock\-sessions\fR .RS 4 Activates/deactivates the screen lock on all current sessions supporting it\&. .RE .PP \fBterminate\-session\fR \fIID\fR\&... .RS 4 Terminates a session\&. This kills all processes of the session and deallocates all resources attached to the session\&. .RE .PP \fBkill\-session\fR \fIID\fR\&... .RS 4 Send a signal to one or more processes of the session\&. Use \fB\-\-kill\-who=\fR to select which process to kill\&. Use \fB\-\-signal=\fR to select the signal to send\&. .RE .SS "User Commands" .PP \fBlist\-users\fR .RS 4 List currently logged in users\&. .RE .PP \fBuser\-status\fR [\fIUSER\fR\&...] .RS 4 Show terse runtime status information about one or more logged in users, followed by the most recent log data from the journal\&. Takes one or more user names or numeric user IDs as parameters\&. If no parameters are passed, the status is shown for the user of the session of the caller\&. This function is intended to generate human\-readable output\&. If you are looking for computer\-parsable output, use \fBshow\-user\fR instead\&. .RE .PP \fBshow\-user\fR [\fIUSER\fR\&...] .RS 4 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 are shown\&. By default, empty properties are suppressed\&. Use \fB\-\-all\fR to show those too\&. To select specific properties to show, use \fB\-\-property=\fR\&. This command is intended to be used whenever computer\-parsable output is required\&. Use \fBuser\-status\fR if you are looking for formatted human\-readable output\&. .RE .PP \fBterminate\-user\fR \fIUSER\fR\&... .RS 4 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\&. .RE .PP \fBkill\-user\fR \fIUSER\fR\&... .RS 4 Send a signal to all processes of a user\&. Use \fB\-\-signal=\fR to select the signal to send\&. .RE .SS "Seat Commands" .PP \fBlist\-seats\fR .RS 4 List currently available seats on the local system\&. .RE .PP \fBseat\-status\fR [\fINAME\fR\&...] .RS 4 Show terse runtime status information about one or more seats\&. Takes one or more seat names as parameters\&. If no seat names are passed the status of the caller\*(Aqs session\*(Aqs seat is shown\&. This function is intended to generate human\-readable output\&. If you are looking for computer\-parsable output, use \fBshow\-seat\fR instead\&. .RE .PP \fBshow\-seat\fR [\fINAME\fR\&...] .RS 4 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 \fB\-\-all\fR to show those too\&. To select specific properties to show, use \fB\-\-property=\fR\&. This command is intended to be used whenever computer\-parsable output is required\&. Use \fBseat\-status\fR if you are looking for formatted human\-readable output\&. .RE .PP \fBattach\fR \fINAME\fR \fIDEVICE\fR\&... .RS 4 Persistently 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 name\&. Seat names may consist only of a\(enz, A\(enZ, 0\(en9, "\-" 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 \fBflush\-devices\fR\&. .RE .PP \fBflush\-devices\fR .RS 4 Removes all device assignments previously created with \fBattach\fR\&. After this call, only automatically generated seats will remain, and all seat hardware is assigned to them\&. .RE .PP \fBterminate\-seat\fR \fINAME\fR\&... .RS 4 Terminates all sessions on a seat\&. This kills all processes of all sessions on the seat and deallocates all runtime resources attached to them\&. .RE .SS "System Commands" .PP \fBreload\fR .RS 4 Reload the elogind configuration\&. While the daemon is being reloaded, all sockets elogind listens on behalf of user configuration will stay accessible\&. .RE .PP \fBpoweroff\fR .RS 4 Shut down and power\-off the system\&. This is mostly equivalent to \fBshutdown \-h\fR\&. This command is asynchronous; it will return after the power\-off operation is enqueued, without waiting for it to complete\&. .RE .PP \fBreboot\fR [\-\-firmware\-setup] .RS 4 Shut down and reboot the system\&. This is mostly equivalent to \fBshutdown \-r\fR\&. This command is asynchronous; it will return after the reboot operation is enqueued, without waiting for it to complete\&. .sp If the optional argument \fB\-\-firmware\-setup\fR is given, indicate to the system\*(Aqs firmware to reboot into the firmware setup interface\&. Note that this functionality is not available on all systems\&. .RE .PP \fBsuspend\fR .RS 4 Suspend the system\&. This will tell all processes registered via dbus to prepare for suspension\&. This command is asynchronous, and will return after the suspend operation is successfully enqueued\&. It will not wait for the suspend/resume cycle to complete\&. .RE .PP \fBhibernate\fR .RS 4 Hibernate the system\&. This will tell all processes registered via dbus to prepare for hibernation\&. This command is asynchronous, and will return after the hibernation operation is successfully enqueued\&. It will not wait for the hibernate/thaw cycle to complete\&. .RE .PP \fBhybrid\-sleep\fR .RS 4 Hibernate and suspend the system\&. This will tell all processes registered via dbus to prepare for hybrid\-sleep\&. This command is asynchronous, and will return after the hybrid sleep operation is successfully enqueued\&. It will not wait for the sleep/wake\-up cycle to complete\&. .RE .PP \fBsuspend\-then\-hibernate\fR .RS 4 Suspend the system and hibernate it after the delay specified in logind\&.conf\&. This will tell all processes registered via dbus to prepare for suspend\-then\-hibernate\&. This command is asynchronous, and will return after the hybrid sleep operation is successfully enqueued\&. It will not wait for the sleep/wake\-up or hibernate/thaw cycle to complete\&. .RE .SS "Hook directories" .PP \fB[/usr]/lib[64]/elogind/system\-sleep/\fR, \fB/etc/elogind/system\-sleep/\fR .RS 4 Immediately before entering system suspend and/or hibernation elogind will run all executables in \fB[/usr]/lib[64]/elogind/system\-sleep/\fR and \fB/etc/elogind/system\-sleep/\fR and pass two arguments to them\&. The first argument will be "pre", the second either "suspend", "hibernate", "hybrid\-sleep", or "suspend\-then\-hibernate", depending on the chosen action\&. Immediately after leaving system suspend and/or hibernation the same executables are run, but the first argument is now "post"\&. All executables in this directory are executed sequentially, and execution of the action is not continued until all executables have finished\&. .RE .PP \fB[/usr]/lib[64]/elogind/system\-shutdown/\fR, \fB/etc/elogind/system\-shutdown/\fR .RS 4 Immediately before rebooting or powering the system off, elogind will run all executables in \fB[/usr]/lib[64]/elogind/system\-shutdown/\fR and \fB/etc/elogind/system\-shutdown/\fR and pass one argument to them\&. The argument will either be "poweroff" or "reboot", depending on the chosen action\&. .RE .PP \fBAllowPowerOffInterrupts\fR, \fBAllowSuspendInterrupts\fR .RS 4 Whether the executables in these directories run successfully or not is of no concern to elogind\&. If you want the scripts to cause the action to be cancelled if one fails, you can set "AllowPowerOffInterrupts" and/or "AllowSuspendInterrupts" to "yes" in /etc/elogind/logind\&.conf\&. For this to work the executables in question must print an error message to "STDOUT" that begins with either of these keywords: "CANCELLED", "CRITICAL", "ERROR" or "FAILED"\&. If you want any of these words in a message without causing the action to be cancelled, just re\-arrange the sentence in question so that the keyword is not the first word\&. .RE .PP \fBBroadcastPowerOffInterrupts\fR, \fBBroadcastSuspendInterrupts\fR .RS 4 By default an interrupt of a power off or a suspend is broadcasted\&. If you do not whish these broadcasts to happen, change "BroadcastPowerOffInterrupts" and/or "BroadcastSuspendInterrupts" to "no" in /etc/elogind/logind\&.conf\&. .RE .PP Note that scripts or binaries dropped in any of the hook directories are intended for local use only and should be considered hacks\&. If applications want to react to these system commands, they should rather use the \m[blue]\fBInhibitor interface\fR\m[]\&\s-2\u[1]\d\s+2\&. .SH "OPTIONS" .PP The following options are understood: .PP \fB\-\-no\-ask\-password\fR .RS 4 Do not query the user for authentication for privileged operations\&. .RE .PP \fB\-p\fR, \fB\-\-property=\fR .RS 4 When showing session/user/seat 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\&. .RE .PP \fB\-\-value\fR .RS 4 When showing session/user/seat properties, only print the value, and skip the property name and "="\&. .RE .PP \fB\-a\fR, \fB\-\-all\fR .RS 4 When showing session/user/seat properties, show all properties regardless of whether they are set or not\&. .RE .PP \fB\-l\fR, \fB\-\-full\fR .RS 4 Do not ellipsize process tree entries\&. .RE .PP \fB\-\-kill\-who=\fR .RS 4 When used with \fBkill\-session\fR, choose which processes to kill\&. Must be one of \fBleader\fR, or \fBall\fR to select whether to kill only the leader process of the session or all processes of the session\&. If omitted, defaults to \fBall\fR\&. .RE .PP \fB\-s\fR, \fB\-\-signal=\fR .RS 4 When used with \fBkill\-session\fR or \fBkill\-user\fR, choose which signal to send to selected processes\&. Must be one of the well known signal specifiers, such as \fBSIGTERM\fR, \fBSIGINT\fR or \fBSIGSTOP\fR\&. If omitted, defaults to \fBSIGTERM\fR\&. .RE .PP \fB\-o\fR, \fB\-\-output=\fR .RS 4 When used with \fBuser\-status\fR and \fBsession\-status\fR, controls the formatting of the journal entries that are shown\&. For the available choices, see \fBjournalctl\fR(1)\&. Defaults to "short"\&. .RE .PP \fB\-\fR .RS 4 Cancel a pending shutdown or reboot\&. .RE .PP \fB\-i\fR, \fB\-\-ignore\-inhibitors\fR .RS 4 When system shutdown or a sleep state is requested, ignore inhibitor locks\&. Applications can establish inhibitor locks to avoid that certain important operations (such as CD burning or suchlike) are interrupted by system shutdown or a sleep state\&. Any user may take these locks and privileged users may override these locks\&. If any locks are taken, shutdown and sleep state requests will normally fail (unless privileged) and a list of active locks is printed\&. However, if \fB\-\-ignore\-inhibitors\fR is specified, the established locks are ignored and not shown, and the operation attempted anyway, possibly requiring additional privileges\&. .RE .PP \fB\-H\fR, \fB\-\-host=\fR .RS 4 Execute the operation remotely\&. Specify a hostname, or a username and hostname separated by "@", to connect to\&. The hostname may optionally be suffixed by a port ssh is listening on, separated by ":", and then a container name, separated by "/", which connects directly to a specific container on the specified host\&. This will use SSH to talk to the remote machine manager instance\&. Container names may be enumerated with \fBmachinectl \-H \fR\fB\fIHOST\fR\fR\&. Put IPv6 addresses in brackets\&. .RE .PP \fB\-M\fR, \fB\-\-machine=\fR .RS 4 Execute operation on a local container\&. Specify a container name to connect to\&. .RE .PP \fB\-\-no\-pager\fR .RS 4 Do not pipe output into a pager\&. .RE .PP \fB\-\-no\-legend\fR .RS 4 Do not print the legend, i\&.e\&. column headers and the footer with hints\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 Print a short help text and exit\&. .RE .PP \fB\-\-version\fR .RS 4 Print a short version string and exit\&. .RE .SH "EXIT STATUS" .PP On success, 0 is returned, a non\-zero failure code otherwise\&. .SH "EXAMPLES" .PP \fBExample\ \&1.\ \&Querying user status\fR .sp .if n \{\ .RS 4 .\} .nf $ loginctl user\-status sed (1004) Since: Wed 2020\-01\-29 20:32:00 CET; 3 days ago State: active Sessions: 3 *2 Linger: no Unit: user\-1004\&.slice .fi .if n \{\ .RE .\} .PP There are two sessions, 2 and 3\&. The session 2 is a graphical session, marked with a star\&. Uptime, state, lingering state und the user unit are shown\&. The user unit is an artificial construct, elogind does not really support systemd units and slices\&. .SH "ENVIRONMENT" .PP \fI$SYSTEMD_PAGER\fR .RS 4 Pager to use when \fB\-\-no\-pager\fR is not given; overrides \fI$PAGER\fR\&. If neither \fI$SYSTEMD_PAGER\fR nor \fI$PAGER\fR are set, a set of well\-known pager implementations are tried in turn, including \fBless\fR(1) and \fBmore\fR(1), until one is found\&. If no pager implementation is discovered no pager is invoked\&. Setting this environment variable to an empty string or the value "cat" is equivalent to passing \fB\-\-no\-pager\fR\&. .RE .PP \fI$SYSTEMD_LESS\fR .RS 4 Override the options passed to \fBless\fR (by default "FRSXMK")\&. .sp Users might want to change two options in particular: .PP \fBK\fR .RS 4 This option instructs the pager to exit immediately when Ctrl+C is pressed\&. To allow \fBless\fR to handle Ctrl+C itself to switch back to the pager command prompt, unset this option\&. .sp If the value of \fI$SYSTEMD_LESS\fR does not include "K", and the pager that is invoked is \fBless\fR, Ctrl+C will be ignored by the executable, and needs to be handled by the pager\&. .RE .PP \fBX\fR .RS 4 This option instructs the pager to not send termcap initialization and deinitialization strings to the terminal\&. It is set by default to allow command output to remain visible in the terminal even after the pager exits\&. Nevertheless, this prevents some pager functionality from working, in particular paged output cannot be scrolled with the mouse\&. .RE .sp See \fBless\fR(1) for more discussion\&. .RE .PP \fI$SYSTEMD_LESSCHARSET\fR .RS 4 Override the charset passed to \fBless\fR (by default "utf\-8", if the invoking terminal is determined to be UTF\-8 compatible)\&. .RE .PP \fI$SYSTEMD_PAGERSECURE\fR .RS 4 Takes a boolean argument\&. When true, the "secure" mode of the pager is enabled; if false, disabled\&. If \fI$SYSTEMD_PAGERSECURE\fR is not set at all, secure mode is enabled if the effective UID is not the same as the owner of the login session, see \fBgeteuid\fR(2) and \fBsd_pid_get_owner_uid\fR(3)\&. In secure mode, \fBLESSSECURE=1\fR will be set when invoking the pager, and the pager shall disable commands that open or create new files or start new subprocesses\&. When \fI$SYSTEMD_PAGERSECURE\fR is not set at all, pagers which are not known to implement secure mode will not be used\&. (Currently only \fBless\fR(1) implements secure mode\&.) .sp Note: when commands are invoked with elevated privileges, for example under \fBsudo\fR(8) or \fBpkexec\fR(1), care must be taken to ensure that unintended interactive features are not enabled\&. "Secure" mode for the pager may be enabled automatically as describe above\&. Setting \fISYSTEMD_PAGERSECURE=0\fR or not removing it from the inherited environment allows the user to invoke arbitrary commands\&. Note that if the \fI$SYSTEMD_PAGER\fR or \fI$PAGER\fR variables are to be honoured, \fI$SYSTEMD_PAGERSECURE\fR must be set too\&. It might be reasonable to completly disable the pager using \fB\-\-no\-pager\fR instead\&. .RE .PP \fI$SYSTEMD_COLORS\fR .RS 4 The value must be a boolean\&. Controls whether colorized output should be generated\&. This can be specified to override the decision that \fBelogind\fR makes based on \fI$TERM\fR and what the console is connected to\&. .RE .PP \fI$SYSTEMD_URLIFY\fR .RS 4 The value must be a boolean\&. Controls whether clickable links should be generated in the output for terminal emulators supporting this\&. This can be specified to override the decision that \fBelogind\fR makes based on \fI$TERM\fR and other conditions\&. .RE .SH "SEE ALSO" .PP \fBelogind\fR(8), \fBlogind.conf\fR(5) .SH "NOTES" .IP " 1." 4 Inhibitor interface .RS 4 \%https://www.freedesktop.org/wiki/Software/systemd/inhibit .RE