chiark / gitweb /
tree-wide: drop 'This file is part of systemd' blurb
[elogind.git] / man / loginctl.xml
index f0f5419ca7e2d5137c0be7017be8692ad7cc7d10..73205a50417721563f31ebaa8039b0bb64b19626 100644 (file)
@@ -3,25 +3,17 @@
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
 <!--
-  This file is part of elogind.
+  SPDX-License-Identifier: LGPL-2.1+
 
   Copyright 2010 Lennart Poettering
-
-  elogind is free software; you can redistribute it and/or modify it
-  under the terms of the GNU Lesser General Public License as published by
-  the Free Software Foundation; either version 2.1 of the License, or
-  (at your option) any later version.
-
-  elogind is distributed in the hope that it will be useful, but
-  WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public License
-  along with elogind; If not, see <http://www.gnu.org/licenses/>.
 -->
 
+<!-- 0 /// elogind does not need to activate loginctl in configure
+<refentry id="loginctl" conditional='ENABLE_LOGIND'
+    xmlns:xi="http://www.w3.org/2001/XInclude">
+else -->
 <refentry id="loginctl" xmlns:xi="http://www.w3.org/2001/XInclude">
+<!-- // 0 -->
 
   <refentryinfo>
     <title>loginctl</title>
 
     <para><command>loginctl</command> may be used to introspect and
     control the state of the
+    <!-- 0 /// elogind has no services and is in section 8
+    <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+    login manager
+    <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
+    --><!-- else -->
     <citerefentry><refentrytitle>elogind</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-    login manager.</para>
+    login manager</para>
+    <!-- // 0 -->
   </refsect1>
 
   <refsect1>
         shown.</para></listitem>
       </varlistentry>
 
+      <varlistentry>
+        <term><option>--value</option></term>
+
+        <listitem><para>When showing session/user/seat properties,
+        only print the value, and skip the property name and
+        <literal>=</literal>.</para></listitem>
+      </varlistentry>
+
       <varlistentry>
         <term><option>-a</option></term>
         <term><option>--all</option></term>
         <constant>SIGTERM</constant>.</para></listitem>
       </varlistentry>
 
+      <!-- 0 /// elogind does not support systemd-journal
+      <varlistentry>
+        <term><option>-n</option></term>
+        <term><option>&#x2D;&#x2D;lines=</option></term>
+
+        <listitem><para>When used with <command>user-status</command>
+        and <command>session-status</command>, controls the number of
+        journal lines to show, counting from the most recent ones.
+        Takes a positive integer argument. Defaults to 10.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-o</option></term>
+        <term><option>&#x2D;&#x2D;output=</option></term>
+
+        <listitem><para>When used with <command>user-status</command>
+        and <command>session-status</command>, controls the formatting
+        of the journal entries that are shown. For the available
+        choices, see
+        <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
+        Defaults to <literal>short</literal>.</para></listitem>
+      </varlistentry>
+      // 0 -->
+
       <xi:include href="user-system-options.xml" xpointer="host" />
       <xi:include href="user-system-options.xml" xpointer="machine" />
 
       </varlistentry>
 
       <varlistentry>
-        <term><command>session-status</command> <optional><replaceable>ID</replaceable>...</optional></term>
+        <term><command>session-status</command> <optional><replaceable>ID</replaceable></optional></term>
 
         <listitem><para>Show terse runtime status information about
-        one or more sessions. Takes one or more session identifiers as
-        parameters. If no session identifiers are passed the status of
+        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's session is shown. This function is intended to
         generate human-readable output. If you are looking for
         computer-parsable output, use <command>show-session</command>
       </varlistentry>
 
       <varlistentry>
-        <term><command>show-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
+        <term><command>show-session</command> <optional><replaceable>ID</replaceable></optional></term>
 
         <listitem><para>Show properties of one or more sessions or the
         manager itself. If no argument is specified, properties of the
         <term><command>activate</command> <optional><replaceable>ID</replaceable></optional></term>
 
         <listitem><para>Activate a session. This brings a session into
-        the foreground, if another session is currently in the
+        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
+        as argument. If no argument is specified, the session of the
         caller is put into foreground.</para></listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><command>lock-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
-        <term><command>unlock-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
+        <term><command>lock-session</command> <optional><replaceable>ID</replaceable></optional></term>
+        <term><command>unlock-session</command> <optional><replaceable>ID</replaceable></optional></term>
 
         <listitem><para>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.
+        specified, the session of the caller is locked/unlocked.
         </para></listitem>
       </varlistentry>
 
       </varlistentry>
 
       <varlistentry>
-        <term><command>terminate-session</command> <replaceable>ID</replaceable>...</term>
+        <term><command>terminate-session</command> <replaceable>ID</replaceable></term>
 
         <listitem><para>Terminates a session. This kills all processes
         of the session and deallocates all resources attached to the
       </varlistentry>
 
       <varlistentry>
-        <term><command>kill-session</command> <replaceable>ID</replaceable>...</term>
+        <term><command>kill-session</command> <replaceable>ID</replaceable></term>
 
         <listitem><para>Send a signal to one or more processes of the
         session. Use <option>--kill-who=</option> to select which
       </varlistentry>
 
       <varlistentry>
-        <term><command>user-status</command> <optional><replaceable>USER</replaceable>...</optional></term>
+        <term><command>user-status</command> <optional><replaceable>USER</replaceable></optional></term>
 
         <listitem><para>Show terse runtime status information about
-        one or more logged in users. Takes one or more user names or numeric
-        user IDs as parameters. If no parameters are passed the status
-        of the caller's user is shown. This function is intended to
-        generate human-readable output. If you are looking for
-        computer-parsable output, use <command>show-user</command>
-        instead. Users may be specified by their usernames or numeric
-        user IDs. </para></listitem>
+        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
+        <command>show-user</command> instead.</para></listitem>
       </varlistentry>
 
       <varlistentry>
-        <term><command>show-user</command> <optional><replaceable>USER</replaceable>...</optional></term>
+        <term><command>show-user</command> <optional><replaceable>USER</replaceable></optional></term>
 
         <listitem><para>Show properties of one or more users or the
         manager itself. If no argument is specified, properties of the
         formatted human-readable output.</para></listitem>
       </varlistentry>
 
+      <!-- 0 /// elogind does not spawn a user manager. Mask until lingeringin elogind is clarified.
       <varlistentry>
-        <term><command>enable-linger</command> <optional><replaceable>USER</replaceable>...</optional></term>
-        <term><command>disable-linger</command> <optional><replaceable>USER</replaceable>...</optional></term>
+        <term><command>enable-linger</command> <optional><replaceable>USER</replaceable></optional></term>
+        <term><command>disable-linger</command> <optional><replaceable>USER</replaceable></optional></term>
 
         <listitem><para>Enable/disable user lingering for one or more
         users. If enabled for a specific user, a user manager is
         spawned for the user at boot and kept around after logouts.
         This allows users who are not logged in to run long-running
         services. Takes one or more user names or numeric UIDs as
-        argument. If no argument is specified enables/disables
-        lingering for the user of the session of the caller.
+        argument. If no argument is specified, enables/disables
+        lingering for the user of the session of the caller.</para>
+
+        <para>See also <varname>KillUserProcesses=</varname> setting in
+        <citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
         </para></listitem>
       </varlistentry>
+      // 0 -->
 
       <varlistentry>
-        <term><command>terminate-user</command> <replaceable>USER</replaceable>...</term>
+        <term><command>terminate-user</command> <replaceable>USER</replaceable></term>
 
         <listitem><para>Terminates all sessions of a user. This kills
         all processes of all sessions of the user and deallocates all
       </varlistentry>
 
       <varlistentry>
-        <term><command>kill-user</command> <replaceable>USER</replaceable>...</term>
+        <term><command>kill-user</command> <replaceable>USER</replaceable></term>
 
         <listitem><para>Send a signal to all processes of a user. Use
         <option>--signal=</option> to select the signal to send.
       </varlistentry>
 
       <varlistentry>
-        <term><command>seat-status</command> <optional><replaceable>NAME</replaceable>...</optional></term>
+        <term><command>seat-status</command> <optional><replaceable>NAME</replaceable></optional></term>
 
         <listitem><para>Show terse runtime status information about
         one or more seats. Takes one or more seat names as parameters.
       </varlistentry>
 
       <varlistentry>
-        <term><command>show-seat</command> <optional><replaceable>NAME</replaceable>...</optional></term>
+        <term><command>show-seat</command> <optional><replaceable>NAME</replaceable></optional></term>
 
         <listitem><para>Show properties of one or more seats or the
         manager itself. If no argument is specified, properties of the
       </varlistentry>
 
       <varlistentry>
-        <term><command>attach</command> <replaceable>NAME</replaceable> <replaceable>DEVICE</replaceable>...</term>
+        <term><command>attach</command> <replaceable>NAME</replaceable> <replaceable>DEVICE</replaceable></term>
 
         <listitem><para>Persistently attach one or more devices to a
         seat. The devices should be specified via device paths in the
         <filename>/sys</filename> 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-z, A-Z, 0-9,
+        name. Seat names may consist only of a–z, A–Z, 0–9,
         <literal>-</literal> and <literal>_</literal> and must be
         prefixed with <literal>seat</literal>. To drop assignment of a
         device to a specific seat, just reassign it to a different
       </varlistentry>
 
       <varlistentry>
-        <term><command>terminate-seat</command> <replaceable>NAME</replaceable>...</term>
+        <term><command>terminate-seat</command> <replaceable>NAME</replaceable></term>
 
         <listitem><para>Terminates all sessions on a seat. This kills
         all processes of all sessions on the seat and deallocates all
       </varlistentry>
     </variablelist></refsect2>
 
+    <!-- 1 /// elogind additionally supports a few systemctl commands. -->
     <refsect2><title>System Commands</title><variablelist>
+      <varlistentry>
+        <term><command>poweroff</command></term>
+
+        <listitem>
+          <para>Print a wall message to all users, shut down and
+            power-off the system.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
+
+        <listitem>
+          <para>Print a wall message to all users, shut down and
+            reboot the system.</para>
+
+          <para>If the optional argument
+          <replaceable>arg</replaceable> is given, it will be passed
+          as the optional argument to the
+          <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
+          system call. The value is architecture and firmware
+          specific. As an example, <literal>recovery</literal> might
+          be used to trigger system recovery, and
+          <literal>fota</literal> might be used to trigger a
+          <quote>firmware over the air</quote> update.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><command>suspend</command></term>
+
+        <listitem>
+          <para>Suspend the system.
+          </para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><command>hibernate</command></term>
+
+        <listitem>
+          <para>Hibernate the system.
+          </para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><command>hybrid-sleep</command></term>
+
+        <listitem>
+          <para>Hibernate and suspend the system.</para>
+        </listitem>
+      </varlistentry>
     </variablelist></refsect2>
-    <varlistentry>
-      <term><command>poweroff</command></term>
-
-      <listitem>
-        <para>Print a wall message to all users, shut down and
-          power-off the system.</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry>
-      <term><command>reboot <optional><replaceable>arg</replaceable></optional></command></term>
-
-      <listitem>
-        <para>Print a wall message to all users, shut down and
-          reboot the system.</para>
-
-        <para>If the optional argument
-        <replaceable>arg</replaceable> is given, it will be passed
-        as the optional argument to the
-        <citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>
-        system call. The value is architecture and firmware
-        specific. As an example, <literal>recovery</literal> might
-        be used to trigger system recovery, and
-        <literal>fota</literal> might be used to trigger a
-        <quote>firmware over the air</quote> update.</para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term><command>suspend</command></term>
-
-      <listitem>
-        <para>Suspend the system.
-        </para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term><command>hibernate</command></term>
-
-      <listitem>
-        <para>Hibernate the system.
-        </para>
-      </listitem>
-    </varlistentry>
-
-    <varlistentry>
-      <term><command>hybrid-sleep</command></term>
-
-      <listitem>
-        <para>Hibernate and suspend the system.</para>
-      </listitem>
-    </varlistentry>
+    <!-- // 1 -->
   </refsect1>
+
   <refsect1>
     <title>Exit status</title>
 
     otherwise.</para>
   </refsect1>
 
+  <refsect1>
+    <title>Examples</title>
+
+    <example>
+      <title>Querying user status</title>
+
+      <!-- 0 /// With elogind no Unit and jurnald output is generated
+      <programlisting>$ 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
+                  ├─user@1005.service
+                    …
+                  ├─session-3.scope
+                    …
+                  └─session-5.scope
+                    ├─3473 login &#x2D;&#x2D; fatima
+                    └─3515 -zsh
+
+Apr 09 14:40:30 laptop login[2325]: pam_unix(login:session):
+                       session opened for user fatima by LOGIN(uid=0)
+Apr 09 14:40:30 laptop login[2325]: LOGIN ON tty3 BY fatima
+</programlisting>
+      --><!-- else -->
+      <programlisting>$ 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
+</programlisting>
+      <!-- // 0 -->
+
+      <para>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.</para>
+    </example>
+  </refsect1>
+
   <xi:include href="less-variables.xml" />
 
   <refsect1>
     <title>See Also</title>
     <para>
-      <citerefentry><refentrytitle>elogind</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+      <!-- 0 /// elogind is in section 8
+      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
       <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
+      <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+      --><!-- else -->
+      <citerefentry><refentrytitle>elogind</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
+      <!-- // 0 -->
       <citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
     </para>
   </refsect1>