'\" t .TH "LOGINCTL" "1" "" "elogind 239.3" "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 "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\-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 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\&. .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 "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 \fBpoweroff\fR .RS 4 Print a wall message to all users, shut down and power\-off the system\&. .RE .PP \fBreboot \fR\fB[\fIarg\fR]\fR .RS 4 Print a wall message to all users, shut down and reboot the system\&. .sp If the optional argument \fIarg\fR is given, it will be passed as the optional argument to the \fBreboot\fR(2) system call\&. The value is architecture and firmware specific\&. As an example, "recovery" might be used to trigger system recovery, and "fota" might be used to trigger a \(lqfirmware over the air\(rq update\&. .RE .PP \fBsuspend\fR .RS 4 Suspend the system\&. .RE .PP \fBhibernate\fR .RS 4 Hibernate the system\&. .RE .PP \fBhybrid\-sleep\fR .RS 4 Hibernate and suspend the system\&. .RE .PP \fBsuspend\-then\-hibernate\fR .RS 4 Suspend the system, wake after a period of time and put it into hibernate .RE .SH "HOOK DIRECTORIES" .PP Immediately before entering system suspend and/or hibernation elogind will run all executables in [/usr]/lib/elogind/system\-sleep/ 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\&. .PP Note that scripts or binaries dropped in [/usr]/lib/elogind/system\-sleep/ are intended for local use only and should be considered hacks\&. If applications want to react to system suspend/hibernation and resume, they should rather use the \m[blue]\fBInhibitor interface\fR\m[]\&\s-2\u[1]\d\s+2\&. .PP Immediately before executing the actual system poweroff/reboot elogind will run all executables in [/usr]/lib/elogind/system\-shutdown/ and pass one arguments to them, either "poweroff" or "reboot", depending on the chosen action\&. All executables in this directory are executed sequentially, and execution of the action is not continued before all executables finished\&. .PP 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\&. .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 fatima (1005) Since: Sat 2016\-04\-09 14:23:31 EDT; 54min ago State: active Sessions: 5 *3 Unit: user\-1005\&.slice .fi .if n \{\ .RE .\} .PP There are two sessions, 3 and 5\&. Session 3 is a graphical session, marked with a star\&. The tree of processing including the two corresponding scope units and the user manager unit are shown\&. .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")\&. .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 .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