chiark / gitweb /
Manpages: update elogind refentry for better handling through check_tree.pl
[elogind.git] / man / loginctl.xml
1 <?xml version='1.0'?> <!--*-nxml-*-->
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5 <!--
6   This file is part of elogind.
7
8   Copyright 2010 Lennart Poettering
9
10   elogind is free software; you can redistribute it and/or modify it
11   under the terms of the GNU Lesser General Public License as published by
12   the Free Software Foundation; either version 2.1 of the License, or
13   (at your option) any later version.
14
15   elogind is distributed in the hope that it will be useful, but
16   WITHOUT ANY WARRANTY; without even the implied warranty of
17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18   Lesser General Public License for more details.
19
20   You should have received a copy of the GNU Lesser General Public License
21   along with elogind; If not, see <http://www.gnu.org/licenses/>.
22 -->
23
24 <refentry id="loginctl"
25     xmlns:xi="http://www.w3.org/2001/XInclude">
26
27   <refentryinfo>
28     <title>loginctl</title>
29     <productname>elogind</productname>
30
31     <authorgroup>
32       <author>
33         <contrib>Developer</contrib>
34         <firstname>Lennart</firstname>
35         <surname>Poettering</surname>
36         <email>lennart@poettering.net</email>
37       </author>
38     </authorgroup>
39   </refentryinfo>
40
41   <refmeta>
42     <refentrytitle>loginctl</refentrytitle>
43     <manvolnum>1</manvolnum>
44   </refmeta>
45
46   <refnamediv>
47     <refname>loginctl</refname>
48     <refpurpose>Control the elogind login manager</refpurpose>
49   </refnamediv>
50
51   <refsynopsisdiv>
52     <cmdsynopsis>
53       <command>loginctl</command>
54       <arg choice="opt" rep="repeat">OPTIONS</arg>
55       <arg choice="req">COMMAND</arg>
56       <arg choice="opt" rep="repeat">NAME</arg>
57     </cmdsynopsis>
58   </refsynopsisdiv>
59
60   <refsect1>
61     <title>Description</title>
62
63     <para><command>loginctl</command> may be used to introspect and
64     control the state of the
65     <citerefentry><refentrytitle>elogind</refentrytitle><manvolnum>8</manvolnum></citerefentry>
66     login manager</para>
67   </refsect1>
68
69   <refsect1>
70     <title>Options</title>
71
72     <para>The following options are understood:</para>
73
74     <variablelist>
75       <varlistentry>
76         <term><option>--no-ask-password</option></term>
77
78         <listitem><para>Do not query the user for authentication for
79         privileged operations.</para></listitem>
80       </varlistentry>
81
82       <varlistentry>
83         <term><option>-p</option></term>
84         <term><option>--property=</option></term>
85
86         <listitem><para>When showing session/user/seat properties,
87         limit display to certain properties as specified as argument.
88         If not specified, all set properties are shown. The argument
89         should be a property name, such as
90         <literal>Sessions</literal>. If specified more than once, all
91         properties with the specified names are
92         shown.</para></listitem>
93       </varlistentry>
94
95       <varlistentry>
96         <term><option>--value</option></term>
97
98         <listitem>
99           <para>When printing properties with <command>show</command>,
100           only print the value, and skip the property name and
101           <literal>=</literal>.</para>
102         </listitem>
103       </varlistentry>
104
105       <varlistentry>
106         <term><option>-a</option></term>
107         <term><option>--all</option></term>
108
109         <listitem><para>When showing session/user/seat properties,
110         show all properties regardless of whether they are set or
111         not.</para></listitem>
112       </varlistentry>
113
114       <varlistentry>
115         <term><option>-l</option></term>
116         <term><option>--full</option></term>
117
118         <listitem><para>Do not ellipsize process tree entries.</para>
119         </listitem>
120       </varlistentry>
121
122       <varlistentry>
123         <term><option>--kill-who=</option></term>
124
125         <listitem><para>When used with
126         <command>kill-session</command>, choose which processes to
127         kill. Must be one of <option>leader</option>, or
128         <option>all</option> to select whether to kill only the leader
129         process of the session or all processes of the session. If
130         omitted, defaults to <option>all</option>.</para></listitem>
131       </varlistentry>
132
133       <varlistentry>
134         <term><option>-s</option></term>
135         <term><option>--signal=</option></term>
136
137         <listitem><para>When used with <command>kill-session</command>
138         or <command>kill-user</command>, choose which signal to send
139         to selected processes. Must be one of the well known signal
140         specifiers, such as <constant>SIGTERM</constant>,
141         <constant>SIGINT</constant> or <constant>SIGSTOP</constant>.
142         If omitted, defaults to
143         <constant>SIGTERM</constant>.</para></listitem>
144       </varlistentry>
145
146       <xi:include href="user-system-options.xml" xpointer="host" />
147       <xi:include href="user-system-options.xml" xpointer="machine" />
148
149       <xi:include href="standard-options.xml" xpointer="no-pager" />
150       <xi:include href="standard-options.xml" xpointer="no-legend" />
151       <xi:include href="standard-options.xml" xpointer="help" />
152       <xi:include href="standard-options.xml" xpointer="version" />
153     </variablelist>
154   </refsect1>
155
156   <refsect1>
157     <title>Commands</title>
158
159     <para>The following commands are understood:</para>
160
161     <refsect2><title>Session Commands</title><variablelist>
162
163       <varlistentry>
164         <term><command>list-sessions</command></term>
165
166         <listitem><para>List current sessions.</para></listitem>
167       </varlistentry>
168
169       <varlistentry>
170         <term><command>session-status</command> <optional><replaceable>ID</replaceable>…</optional></term>
171
172         <listitem><para>Show terse runtime status information about
173         one or more sessions, followed by the most recent log data
174         from the journal. Takes one or more session identifiers as
175         parameters. If no session identifiers are passed, the status of
176         the caller's session is shown. This function is intended to
177         generate human-readable output. If you are looking for
178         computer-parsable output, use <command>show-session</command>
179         instead.</para></listitem>
180       </varlistentry>
181
182       <varlistentry>
183         <term><command>show-session</command> <optional><replaceable>ID</replaceable>…</optional></term>
184
185         <listitem><para>Show properties of one or more sessions or the
186         manager itself. If no argument is specified, properties of the
187         manager will be shown. If a session ID is specified,
188         properties of the session are shown. By default, empty
189         properties are suppressed. Use <option>--all</option> to show
190         those too. To select specific properties to show, use
191         <option>--property=</option>. This command is intended to be
192         used whenever computer-parsable output is required. Use
193         <command>session-status</command> if you are looking for
194         formatted human-readable output.</para></listitem>
195       </varlistentry>
196
197       <varlistentry>
198         <term><command>activate</command> <optional><replaceable>ID</replaceable></optional></term>
199
200         <listitem><para>Activate a session. This brings a session into
201         the foreground if another session is currently in the
202         foreground on the respective seat. Takes a session identifier
203         as argument. If no argument is specified, the session of the
204         caller is put into foreground.</para></listitem>
205       </varlistentry>
206
207       <varlistentry>
208         <term><command>lock-session</command> <optional><replaceable>ID</replaceable>…</optional></term>
209         <term><command>unlock-session</command> <optional><replaceable>ID</replaceable>…</optional></term>
210
211         <listitem><para>Activates/deactivates the screen lock on one
212         or more sessions, if the session supports it. Takes one or
213         more session identifiers as arguments. If no argument is
214         specified, the session of the caller is locked/unlocked.
215         </para></listitem>
216       </varlistentry>
217
218       <varlistentry>
219         <term><command>lock-sessions</command></term>
220         <term><command>unlock-sessions</command></term>
221
222         <listitem><para>Activates/deactivates the screen lock on all
223         current sessions supporting it. </para></listitem>
224       </varlistentry>
225
226       <varlistentry>
227         <term><command>terminate-session</command> <replaceable>ID</replaceable>…</term>
228
229         <listitem><para>Terminates a session. This kills all processes
230         of the session and deallocates all resources attached to the
231         session. </para></listitem>
232       </varlistentry>
233
234       <varlistentry>
235         <term><command>kill-session</command> <replaceable>ID</replaceable>…</term>
236
237         <listitem><para>Send a signal to one or more processes of the
238         session. Use <option>--kill-who=</option> to select which
239         process to kill. Use <option>--signal=</option> to select the
240         signal to send.</para></listitem>
241       </varlistentry>
242     </variablelist></refsect2>
243
244     <refsect2><title>User Commands</title><variablelist>
245       <varlistentry>
246         <term><command>list-users</command></term>
247
248         <listitem><para>List currently logged in users.
249         </para></listitem>
250       </varlistentry>
251
252       <varlistentry>
253         <term><command>user-status</command> <optional><replaceable>USER</replaceable>…</optional></term>
254
255         <listitem><para>Show terse runtime status information about
256         one or more logged in users, followed by the most recent log
257         data from the journal. Takes one or more user names or numeric
258         user IDs as parameters. If no parameters are passed, the status
259         is shown for the user of the session of the caller. This
260         function is intended to generate human-readable output. If you
261         are looking for computer-parsable output, use
262         <command>show-user</command> instead.</para></listitem>
263       </varlistentry>
264
265       <varlistentry>
266         <term><command>show-user</command> <optional><replaceable>USER</replaceable>…</optional></term>
267
268         <listitem><para>Show properties of one or more users or the
269         manager itself. If no argument is specified, properties of the
270         manager will be shown. If a user is specified, properties of
271         the user are shown. By default, empty properties are
272         suppressed. Use <option>--all</option> to show those too. To
273         select specific properties to show, use
274         <option>--property=</option>. This command is intended to be
275         used whenever computer-parsable output is required. Use
276         <command>user-status</command> if you are looking for
277         formatted human-readable output.</para></listitem>
278       </varlistentry>
279
280       <varlistentry>
281         <term><command>enable-linger</command> <optional><replaceable>USER</replaceable>…</optional></term>
282         <term><command>disable-linger</command> <optional><replaceable>USER</replaceable>…</optional></term>
283
284         <listitem><para>Enable/disable user lingering for one or more
285         users. If enabled for a specific user, a user manager is
286         spawned for the user at boot and kept around after logouts.
287         This allows users who are not logged in to run long-running
288         services. Takes one or more user names or numeric UIDs as
289         argument. If no argument is specified, enables/disables
290         lingering for the user of the session of the caller.</para>
291
292         <para>See also <varname>KillUserProcesses=</varname> setting in
293         <citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
294         </para></listitem>
295       </varlistentry>
296
297       <varlistentry>
298         <term><command>terminate-user</command> <replaceable>USER</replaceable>…</term>
299
300         <listitem><para>Terminates all sessions of a user. This kills
301         all processes of all sessions of the user and deallocates all
302         runtime resources attached to the user.</para></listitem>
303       </varlistentry>
304
305       <varlistentry>
306         <term><command>kill-user</command> <replaceable>USER</replaceable>…</term>
307
308         <listitem><para>Send a signal to all processes of a user. Use
309         <option>--signal=</option> to select the signal to send.
310         </para></listitem>
311       </varlistentry>
312     </variablelist></refsect2>
313
314     <refsect2><title>Seat Commands</title><variablelist>
315       <varlistentry>
316         <term><command>list-seats</command></term>
317
318         <listitem><para>List currently available seats on the local
319         system.</para></listitem>
320       </varlistentry>
321
322       <varlistentry>
323         <term><command>seat-status</command> <optional><replaceable>NAME</replaceable>…</optional></term>
324
325         <listitem><para>Show terse runtime status information about
326         one or more seats. Takes one or more seat names as parameters.
327         If no seat names are passed the status of the caller's
328         session's seat is shown. This function is intended to generate
329         human-readable output. If you are looking for
330         computer-parsable output, use <command>show-seat</command>
331         instead.</para></listitem>
332       </varlistentry>
333
334       <varlistentry>
335         <term><command>show-seat</command> <optional><replaceable>NAME</replaceable>…</optional></term>
336
337         <listitem><para>Show properties of one or more seats or the
338         manager itself. If no argument is specified, properties of the
339         manager will be shown. If a seat is specified, properties of
340         the seat are shown. By default, empty properties are
341         suppressed. Use <option>--all</option> to show those too. To
342         select specific properties to show, use
343         <option>--property=</option>. This command is intended to be
344         used whenever computer-parsable output is required. Use
345         <command>seat-status</command> if you are looking for
346         formatted human-readable output.</para></listitem>
347       </varlistentry>
348
349       <varlistentry>
350         <term><command>attach</command> <replaceable>NAME</replaceable> <replaceable>DEVICE</replaceable>…</term>
351
352         <listitem><para>Persistently attach one or more devices to a
353         seat. The devices should be specified via device paths in the
354         <filename>/sys</filename> file system. To create a new seat,
355         attach at least one graphics card to a previously unused seat
356         name. Seat names may consist only of a–z, A–Z, 0–9,
357         <literal>-</literal> and <literal>_</literal> and must be
358         prefixed with <literal>seat</literal>. To drop assignment of a
359         device to a specific seat, just reassign it to a different
360         seat, or use <command>flush-devices</command>.
361         </para></listitem>
362       </varlistentry>
363
364       <varlistentry>
365         <term><command>flush-devices</command></term>
366
367         <listitem><para>Removes all device assignments previously
368         created with <command>attach</command>. After this call, only
369         automatically generated seats will remain, and all seat
370         hardware is assigned to them.</para></listitem>
371       </varlistentry>
372
373       <varlistentry>
374         <term><command>terminate-seat</command> <replaceable>NAME</replaceable>…</term>
375
376         <listitem><para>Terminates all sessions on a seat. This kills
377         all processes of all sessions on the seat and deallocates all
378         runtime resources attached to them.</para></listitem>
379       </varlistentry>
380     </variablelist></refsect2>
381
382     <refsect2><title>System Commands</title><variablelist>
383     </variablelist></refsect2>
384     <varlistentry>
385       <term><command>poweroff</command></term>
386
387       <listitem>
388         <para>Print a wall message to all users, shut down and
389           power-off the system.</para>
390       </listitem>
391     </varlistentry>
392     <varlistentry>
393       <term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
394
395       <listitem>
396         <para>Print a wall message to all users, shut down and
397           reboot the system.</para>
398
399         <para>If the optional argument
400         <replaceable>arg</replaceable> is given, it will be passed
401         as the optional argument to the
402         <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
403         system call. The value is architecture and firmware
404         specific. As an example, <literal>recovery</literal> might
405         be used to trigger system recovery, and
406         <literal>fota</literal> might be used to trigger a
407         <quote>firmware over the air</quote> update.</para>
408       </listitem>
409     </varlistentry>
410
411     <varlistentry>
412       <term><command>suspend</command></term>
413
414       <listitem>
415         <para>Suspend the system.
416         </para>
417       </listitem>
418     </varlistentry>
419
420     <varlistentry>
421       <term><command>hibernate</command></term>
422
423       <listitem>
424         <para>Hibernate the system.
425         </para>
426       </listitem>
427     </varlistentry>
428
429     <varlistentry>
430       <term><command>hybrid-sleep</command></term>
431
432       <listitem>
433         <para>Hibernate and suspend the system.</para>
434       </listitem>
435     </varlistentry>
436   </refsect1>
437   <refsect1>
438     <title>Exit status</title>
439
440     <para>On success, 0 is returned, a non-zero failure code
441     otherwise.</para>
442   </refsect1>
443
444   <refsect1>
445     <title>Examples</title>
446
447     <example>
448       <title>Querying user status</title>
449
450       <programlisting>$ loginctl user-status
451 fatima (1005)
452            Since: Sat 2016-04-09 14:23:31 EDT; 54min ago
453            State: active
454         Sessions: 5 *3
455             Unit: user-1005.slice
456                   ├─user@1005.service
457                     …
458                   ├─session-3.scope
459                     …
460                   └─session-5.scope
461                     ├─3473 login -- fatima
462                     └─3515 -zsh
463
464 Apr 09 14:40:30 laptop login[2325]: pam_unix(login:session):
465                        session opened for user fatima by LOGIN(uid=0)
466 Apr 09 14:40:30 laptop login[2325]: LOGIN ON tty3 BY fatima
467 </programlisting>
468
469       <para>There are two sessions, 3 and 5. Session 3 is a graphical session,
470       marked with a star. The tree of processing including the two corresponding
471       scope units and the user manager unit are shown.</para>
472     </example>
473   </refsect1>
474
475   <xi:include href="less-variables.xml" />
476
477   <refsect1>
478     <title>See Also</title>
479     <para>
480       <!-- 0 /// elogind is in section 8
481       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
482       --><!-- else -->
483       <citerefentry><refentrytitle>elogind</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
484       <!-- // 0 -->
485       <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
486       <citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
487     </para>
488   </refsect1>
489
490 </refentry>