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">
6 This file is part of systemd.
8 Copyright 2010 Lennart Poettering
10 systemd 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.
15 systemd 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.
20 You should have received a copy of the GNU Lesser General Public License
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
24 <refentry id="loginctl" conditional='ENABLE_LOGIND'
25 xmlns:xi="http://www.w3.org/2001/XInclude">
28 <title>loginctl</title>
29 <productname>systemd</productname>
33 <contrib>Developer</contrib>
34 <firstname>Lennart</firstname>
35 <surname>Poettering</surname>
36 <email>lennart@poettering.net</email>
42 <refentrytitle>loginctl</refentrytitle>
43 <manvolnum>1</manvolnum>
47 <refname>loginctl</refname>
48 <refpurpose>Control the systemd login manager</refpurpose>
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>
61 <title>Description</title>
63 <para><command>loginctl</command> may be used to
64 introspect and control the state of the
65 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
66 login manager <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
70 <title>Options</title>
72 <para>The following options are understood:</para>
76 <term><option>--no-legend</option></term>
79 <para>Do not print the legend,
80 i.e. the column headers and
86 <term><option>--no-ask-password</option></term>
88 <listitem><para>Do not query the user
89 for authentication for privileged
90 operations.</para></listitem>
94 <term><option>-p</option></term>
95 <term><option>--property=</option></term>
97 <listitem><para>When showing
98 session/user/seat properties, limit
99 display to certain properties as
100 specified as argument. If not
101 specified, all set properties are
102 shown. The argument should be a
103 property name, such as
104 <literal>Sessions</literal>. If
105 specified more than once, all
106 properties with the specified names
107 are shown.</para></listitem>
111 <term><option>-a</option></term>
112 <term><option>--all</option></term>
114 <listitem><para>When showing
115 session/user/seat properties, show all
116 properties regardless of whether they are
117 set or not.</para></listitem>
121 <term><option>-l</option></term>
122 <term><option>--full</option></term>
124 <listitem><para>Do not ellipsize
125 process tree entries.</para>
130 <term><option>--kill-who=</option></term>
132 <listitem><para>When used with
133 <command>kill-session</command>,
134 choose which processes to kill. Must
135 be one of <option>leader</option>, or
136 <option>all</option> to select whether
137 to kill only the leader process of the
138 session or all processes of the
139 session. If omitted, defaults to
140 <option>all</option>.</para></listitem>
144 <term><option>-s</option></term>
145 <term><option>--signal=</option></term>
147 <listitem><para>When used with
148 <command>kill-session</command> or
149 <command>kill-user</command>, choose
150 which signal to send to selected
151 processes. Must be one of the well
152 known signal specifiers, such as
153 <constant>SIGTERM</constant>,
154 <constant>SIGINT</constant> or
155 <constant>SIGSTOP</constant>. If
157 <constant>SIGTERM</constant>.</para></listitem>
161 <term><option>-n</option></term>
162 <term><option>--lines=</option></term>
164 <listitem><para>When used with
165 <command>user-status</command> and
166 <command>session-status</command>,
167 controls the number of journal lines
168 to show, counting from the most recent
169 ones. Takes a positive integer
170 argument. Defaults to 10.</para>
175 <term><option>-o</option></term>
176 <term><option>--output=</option></term>
178 <listitem><para>When used with
179 <command>user-status</command> and
180 <command>session-status</command>,
181 controls the formatting of the journal
182 entries that are shown. For the
183 available choices, see
184 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
186 <literal>short</literal>.</para></listitem>
189 <xi:include href="user-system-options.xml" xpointer="host" />
190 <xi:include href="user-system-options.xml" xpointer="machine" />
192 <xi:include href="standard-options.xml" xpointer="help" />
193 <xi:include href="standard-options.xml" xpointer="version" />
194 <xi:include href="standard-options.xml" xpointer="no-pager" />
199 <title>Commands</title>
201 <para>The following commands are understood:</para>
203 <refsect2><title>Session Commands</title><variablelist>
206 <term><command>list-sessions</command></term>
208 <listitem><para>List current sessions.</para></listitem>
212 <term><command>session-status</command> <replaceable>ID</replaceable>...</term>
214 <listitem><para>Show terse runtime
215 status information about one or more
216 sessions, followed by the most recent
217 log data from the journal. This
218 function is intended to generate
219 human-readable output. If you are
220 looking for computer-parsable output,
221 use <command>show-session</command>
222 instead.</para></listitem>
226 <term><command>show-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
228 <listitem><para>Show properties of one
229 or more sessions or the manager
230 itself. If no argument is specified,
231 properties of the manager will be
232 shown. If a session ID is specified,
233 properties of the session are shown. By
234 default, empty properties are
235 suppressed. Use <option>--all</option>
236 to show those too. To select specific
237 properties to show, use
238 <option>--property=</option>. This
239 command is intended to be used
240 whenever computer-parsable output is
242 <command>session-status</command> if
243 you are looking for formatted
245 output.</para></listitem>
249 <term><command>activate</command> <replaceable>ID</replaceable>...</term>
251 <listitem><para>Activate one or more
252 sessions. This brings one or more
253 sessions into the foreground, if
254 another session is currently in the
255 foreground on the respective
256 seat.</para></listitem>
260 <term><command>lock-session</command> <replaceable>ID</replaceable>...</term>
261 <term><command>unlock-session</command> <replaceable>ID</replaceable>...</term>
263 <listitem><para>Activates/deactivates
264 the screen lock on one or more
265 sessions, if the session supports it.
270 <term><command>lock-sessions</command></term>
271 <term><command>unlock-sessions</command></term>
273 <listitem><para>Activates/deactivates
274 the screen lock on all current
275 sessions supporting it.
280 <term><command>terminate-session</command> <replaceable>ID</replaceable>...</term>
282 <listitem><para>Terminates a session.
283 This kills all processes of the
284 session and deallocates all resources
285 attached to the session.
290 <term><command>kill-session</command> <replaceable>ID</replaceable>...</term>
292 <listitem><para>Send a signal to one
293 or more processes of the session. Use
294 <option>--kill-who=</option> to select
295 which process to kill. Use
296 <option>--signal=</option> to select
297 the signal to send.</para></listitem>
299 </variablelist></refsect2>
301 <refsect2><title>User Commands</title><variablelist>
303 <term><command>list-users</command></term>
305 <listitem><para>List currently logged
306 in users.</para></listitem>
310 <term><command>user-status</command> <replaceable>USER</replaceable>...</term>
312 <listitem><para>Show terse runtime
313 status information about one or more
314 logged in users, followed by the most
315 recent log data from the journal. This
316 function is intended to generate
317 human-readable output. If you are
318 looking for computer-parsable output,
319 use <command>show-user</command>
320 instead. Users may be specified by
321 their usernames or numeric user IDs.
326 <term><command>show-user</command> <optional><replaceable>USER</replaceable>...</optional></term>
328 <listitem><para>Show properties of one
329 or more users or the manager
330 itself. If no argument is specified,
331 properties of the manager will be
332 shown. If a user is specified,
333 properties of the user are shown. By
334 default, empty properties are
335 suppressed. Use <option>--all</option>
336 to show those too. To select specific
337 properties to show, use
338 <option>--property=</option>. This
339 command is intended to be used
340 whenever computer-parsable output is
342 <command>user-status</command> if
343 you are looking for formatted
345 output.</para></listitem>
349 <term><command>enable-linger</command> <replaceable>USER</replaceable>...</term>
350 <term><command>disable-linger</command> <replaceable>USER</replaceable>...</term>
352 <listitem><para>Enable/disable user
353 lingering for one or more users. If
354 enabled for a specific user, a user
355 manager is spawned for the user at
356 boot and kept around after
357 logouts. This allows users who are not
358 logged in to run long-running
359 services.</para></listitem>
363 <term><command>terminate-user</command> <replaceable>USER</replaceable>...</term>
365 <listitem><para>Terminates all
366 sessions of a user. This kills all
367 processes of all sessions of the user
368 and deallocates all runtime resources
369 attached to the user.
374 <term><command>kill-user</command> <replaceable>USER</replaceable>...</term>
376 <listitem><para>Send a signal to all
377 processes of a user. Use
378 <option>--signal=</option> to select
379 the signal to send.</para></listitem>
381 </variablelist></refsect2>
383 <refsect2><title>Seat Commands</title><variablelist>
385 <term><command>list-seats</command></term>
387 <listitem><para>List currently
388 available seats on the local
389 system.</para></listitem>
393 <term><command>seat-status</command> <replaceable>NAME</replaceable>...</term>
395 <listitem><para>Show terse runtime
396 status information about one or more
397 seats. This function is
398 intended to generate human-readable
399 output. If you are looking for
400 computer-parsable output, use
401 <command>show-seat</command>
402 instead.</para></listitem>
406 <term><command>show-seat</command> <replaceable>NAME</replaceable>...</term>
408 <listitem><para>Show properties of one
409 or more seats or the manager
410 itself. If no argument is specified,
411 properties of the manager will be
412 shown. If a seat is specified,
413 properties of the seat are shown. By
414 default, empty properties are
415 suppressed. Use <option>--all</option>
416 to show those too. To select specific
417 properties to show, use
418 <option>--property=</option>. This
419 command is intended to be used
420 whenever computer-parsable output is
422 <command>seat-status</command> if you
423 are looking for formatted
425 output.</para></listitem>
429 <term><command>attach</command> <replaceable>NAME</replaceable> <replaceable>DEVICE</replaceable>...</term>
431 <listitem><para>Persistently attach
432 one or more devices to a seat. The
433 devices should be specified via device
434 paths in the <filename>/sys</filename>
435 file system. To create a new seat,
436 attach at least one graphics card to a
437 previously unused seat name. Seat
438 names may consist only of a-z, A-Z,
439 0-9, <literal>-</literal> and
440 <literal>_</literal> and must be
441 prefixed with <literal>seat</literal>.
442 To drop assignment of a device to a
443 specific seat, just reassign it to a
444 different seat, or use
445 <command>flush-devices</command>.
450 <term><command>flush-devices</command></term>
452 <listitem><para>Removes all device
453 assignments previously created with
454 <command>attach</command>. After this
455 call, only automatically generated
456 seats will remain, and all seat
457 hardware is assigned to
458 them.</para></listitem>
462 <term><command>terminate-seat</command> <replaceable>NAME</replaceable>...</term>
464 <listitem><para>Terminates all
465 sessions on a seat. This kills all
466 processes of all sessions on the seat
467 and deallocates all runtime resources
468 attached to them.</para></listitem>
470 </variablelist></refsect2>
475 <title>Exit status</title>
477 <para>On success, 0 is returned, a non-zero failure
478 code otherwise.</para>
481 <xi:include href="less-variables.xml" />
484 <title>See Also</title>
486 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
487 <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
488 <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
489 <citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>