chiark / gitweb /
login: add 'mir' to the list of session types
[elogind.git] / man / sd_session_is_active.xml
index 88b22fd..31a6119 100644 (file)
@@ -8,20 +8,20 @@
   Copyright 2010 Lennart Poettering
 
   systemd is free software; you can redistribute it and/or modify it
-  under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
+  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.
 
   systemd 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
-  General Public License for more details.
+  Lesser General Public License for more details.
 
-  You should have received a copy of the GNU General Public License
+  You should have received a copy of the GNU Lesser General Public License
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 -->
 
-<refentry id="sd_session_is_active">
+<refentry id="sd_session_is_active" conditional='HAVE_PAM'>
 
         <refentryinfo>
                 <title>sd_session_is_active</title>
 
         <refnamediv>
                 <refname>sd_session_is_active</refname>
+                <refname>sd_session_is_remote</refname>
+                <refname>sd_session_get_state</refname>
                 <refname>sd_session_get_uid</refname>
                 <refname>sd_session_get_seat</refname>
+                <refname>sd_session_get_service</refname>
+                <refname>sd_session_get_type</refname>
+                <refname>sd_session_get_class</refname>
+                <refname>sd_session_get_display</refname>
+                <refname>sd_session_get_tty</refname>
+                <refname>sd_session_get_vt</refname>
+                <refname>sd_session_get_remote_host</refname>
+                <refname>sd_session_get_remote_user</refname>
                 <refpurpose>Determine state of a specific session</refpurpose>
         </refnamediv>
 
                         </funcprototype>
 
                         <funcprototype>
+                                <funcdef>int <function>sd_session_is_remote</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_state</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>state</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
                                 <funcdef>int <function>sd_session_get_uid</function></funcdef>
                                 <paramdef>const char* <parameter>session</parameter></paramdef>
                                 <paramdef>uid_t* <parameter>uid</parameter></paramdef>
                                 <paramdef>const char* <parameter>session</parameter></paramdef>
                                 <paramdef>char** <parameter>seat</parameter></paramdef>
                         </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_service</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>service</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_type</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>type</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_class</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>class</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_display</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>display</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_remote_host</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>remote_host</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_remote_user</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>remote_user</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_tty</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>char** <parameter>tty</parameter></paramdef>
+                        </funcprototype>
+
+                        <funcprototype>
+                                <funcdef>int <function>sd_session_get_vt</function></funcdef>
+                                <paramdef>const char* <parameter>session</parameter></paramdef>
+                                <paramdef>unsigned int* <parameter>vt</parameter></paramdef>
+                        </funcprototype>
                 </funcsynopsis>
         </refsynopsisdiv>
 
                 (i.e. currently in the foreground and available for
                 user input) or not.</para>
 
+                <para><function>sd_session_is_remote()</function> may
+                be used to determine whether the session identified by
+                the specified session identifier is a remote session
+                (i.e. its remote host is known) or not.</para>
+
+                <para><function>sd_session_get_state()</function> may
+                be used to determine the state of the session
+                identified by the specified session identifier. The
+                following states are currently known:
+                <literal>online</literal> (session logged in, but
+                session not active, i.e. not in the foreground),
+                <literal>active</literal> (session logged in and
+                active, i.e. in the foreground),
+                <literal>closing</literal> (session nominally logged
+                out, but some processes belonging to it are still
+                around). In the future additional states might be
+                defined, client code should be written to be robust in
+                regards to additional state strings being
+                returned. This function is a more generic version of
+                <function>sd_session_is_active()</function>. The returned
+                string needs to be freed with the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use.</para>
+
                 <para><function>sd_session_get_uid()</function> may be
                 used to determine the user identifier of the Unix user the session
                 identified by the specified session identifier belongs
                 returned string needs to be freed with the libc
                 <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
                 call after use.</para>
+
+                <para><function>sd_session_get_service()</function>
+                may be used to determine the name of the service (as
+                passed during PAM session setup) that registered the
+                session identified by the specified session
+                identifier. The returned string needs to be freed with
+                the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use.</para>
+
+                <para><function>sd_session_get_type()</function> may
+                be used to determine the type of the session
+                identified by the specified session identifier. The
+                returned string is one of <literal>x11</literal>,
+                <literal>wayland</literal>, <literal>tty</literal>,
+                <literal>mir</literal> or <literal>unspecified</literal> and
+                needs to be freed with the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use.</para>
+
+                <para><function>sd_session_get_class()</function> may
+                be used to determine the class of the session
+                identified by the specified session identifier. The
+                returned string is one of <literal>user</literal>,
+                <literal>greeter</literal>,
+                <literal>lock-screen</literal>, or
+                <literal>background</literal> and needs to be freed
+                with the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use.</para>
+
+                <para><function>sd_session_get_display()</function>
+                may be used to determine the X11 display of the
+                session identified by the specified session
+                identifier. The returned string needs to be
+                freed with the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use.</para>
+
+                <para><function>sd_session_get_remote_host()</function>
+                may be used to determine the remote hostname of the
+                session identified by the specified session
+                identifier. The returned string needs to be
+                freed with the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use.</para>
+
+                <para><function>sd_session_get_remote_user()</function>
+                may be used to determine the remote username of the
+                session identified by the specified session
+                identifier. The returned string needs to be
+                freed with the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use. Note that this value is rarely known
+                to the system, and even then should not be relied on.</para>
+
+                <para><function>sd_session_get_tty()</function>
+                may be used to determine the TTY device of the
+                session identified by the specified session
+                identifier. The returned string needs to be
+                freed with the libc
+                <citerefentry><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+                call after use.</para>
+
+                <para><function>sd_session_get_vt()</function>
+                may be used to determine the VT number of the
+                session identified by the specified session
+                identifier. This function will return an error if
+                the seat does not support VTs.</para>
+
+                <para>If the <varname>session</varname> parameter of
+                any of these functions is passed as
+                <constant>NULL</constant>, the operation is executed
+                for the session the calling process is a member of, if
+                there is any.</para>
         </refsect1>
 
         <refsect1>
                 <title>Return Value</title>
 
-                <para>If the test succeeds
-                <function>sd_session_is_active()</function> returns a
-                positive integer, if it fails 0.  On success
-                <function>sd_session_get_uid()</function> and
-                <function>sd_session_get_seat()</function> return 0 or
+                <para>If the test succeeds,
+                <function>sd_session_is_active()</function> and
+                <function>sd_session_is_remote()</function> return a
+                positive integer; if it fails, 0.  On success,
+                <function>sd_session_get_state()</function>,
+                <function>sd_session_get_uid()</function>,
+                <function>sd_session_get_seat()</function>,
+                <function>sd_session_get_service()</function>,
+                <function>sd_session_get_type()</function>,
+                <function>sd_session_get_class()</function>,
+                <function>sd_session_get_display()</function>,
+                <function>sd_session_get_remote_user()</function>,
+                <function>sd_session_get_remote_host()</function> and
+                <function>sd_session_get_tty()</function> return 0 or
                 a positive integer. On failure, these calls return a
                 negative errno-style error code.</para>
         </refsect1>
                 <title>Notes</title>
 
                 <para>The <function>sd_session_is_active()</function>,
-                <function>sd_session_get_uid()</function>, and
-                <function>sd_session_get_seat()</function> interfaces
-                are available as shared library, which can be compiled
-                and linked to with the
-                <literal>libsystemd-login</literal>
-                <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+                <function>sd_session_get_state()</function>,
+                <function>sd_session_get_uid()</function>,
+                <function>sd_session_get_seat()</function>,
+                <function>sd_session_get_service()</function>,
+                <function>sd_session_get_type()</function>,
+                <function>sd_session_get_class()</function>,
+                <function>sd_session_get_display()</function>,
+                <function>sd_session_get_remote_host()</function>,
+                <function>sd_session_get_remote_user()</function> and
+                <function>sd_session_get_tty()</function>
+                interfaces are available as a shared library, which can
+                be compiled and linked to with the
+                <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
                 file.</para>
         </refsect1>
 
 
                 <para>
                         <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
-                        <citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
+                        <citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
                         <citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>
                 </para>
         </refsect1>