systemd/man/sd_session_get_class.html
2014-07-11 02:23:25 +02:00

147 lines
16 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>sd_session_is_active</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
a.headerlink {
color: #c60f0f;
font-size: 0.8em;
padding: 0 4px 0 4px;
text-decoration: none;
visibility: hidden;
}
a.headerlink:hover {
background-color: #c60f0f;
color: white;
}
h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
visibility: visible;
}
</style><a href="index.html">Index </a>·
<a href="systemd.directives.html">Directives </a>·
<a href="../python-systemd/index.html">Python </a>·
<a href="../libudev/index.html">libudev </a>·
<a href="../libudev/index.html">gudev </a><span style="float:right">systemd 214</span><hr><div class="refentry"><a name="sd_session_is_active"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_session_is_active, sd_session_is_remote, sd_session_get_state, sd_session_get_uid, sd_session_get_seat, sd_session_get_service, sd_session_get_type, sd_session_get_class, sd_session_get_display, sd_session_get_tty, sd_session_get_vt, sd_session_get_remote_host, sd_session_get_remote_user — Determine state of a specific session</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;systemd/sd-login.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_active</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_is_remote</b>(</code></td><td>const char *<var class="pdparam">session</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_state</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">state</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_uid</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>uid_t *<var class="pdparam">uid</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_seat</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">seat</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_service</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">service</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_type</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">type</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_class</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">class</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_display</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">display</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_host</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_host</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_remote_user</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">remote_user</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_tty</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">tty</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_session_get_vt</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>unsigned int *<var class="pdparam">vt</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214187472368"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description"></a></h2><p><code class="function">sd_session_is_active()</code> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
user input) or not.</p><p><code class="function">sd_session_is_remote()</code> 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.</p><p><code class="function">sd_session_get_state()</code> may
be used to determine the state of the session
identified by the specified session identifier. The
following states are currently known:
"<code class="literal">online</code>" (session logged in, but
session not active, i.e. not in the foreground),
"<code class="literal">active</code>" (session logged in and
active, i.e. in the foreground),
"<code class="literal">closing</code>" (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
<code class="function">sd_session_is_active()</code>. The returned
string needs to be freed with the libc
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_uid()</code> may be
used to determine the user identifier of the Unix user the session
identified by the specified session identifier belongs
to.</p><p><code class="function">sd_session_get_seat()</code> may
be used to determine the seat identifier of the seat
the session identified by the specified session
identifier belongs to. Note that not all sessions are
attached to a seat, this call will fail for them. The
returned string needs to be freed with the libc
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_service()</code>
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
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_type()</code> may
be used to determine the type of the session
identified by the specified session identifier. The
returned string is one of "<code class="literal">x11</code>",
"<code class="literal">wayland</code>", "<code class="literal">tty</code>",
"<code class="literal">mir</code>" or "<code class="literal">unspecified</code>" and
needs to be freed with the libc
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_class()</code> may
be used to determine the class of the session
identified by the specified session identifier. The
returned string is one of "<code class="literal">user</code>",
"<code class="literal">greeter</code>",
"<code class="literal">lock-screen</code>", or
"<code class="literal">background</code>" and needs to be freed
with the libc
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_display()</code>
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
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_remote_host()</code>
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
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_remote_user()</code>
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
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use. Note that this value is rarely known
to the system, and even then should not be relied on.</p><p><code class="function">sd_session_get_tty()</code>
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
<a href="free.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a>
call after use.</p><p><code class="function">sd_session_get_vt()</code>
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.</p><p>If the <code class="varname">session</code> parameter of
any of these functions is passed as
<code class="constant">NULL</code>, the operation is executed
for the session the calling process is a member of, if
there is any.</p></div><div class="refsect1"><a name="idm214182525232"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value"></a></h2><p>If the test succeeds,
<code class="function">sd_session_is_active()</code> and
<code class="function">sd_session_is_remote()</code> return a
positive integer; if it fails, 0. On success,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
<code class="function">sd_session_get_service()</code>,
<code class="function">sd_session_get_type()</code>,
<code class="function">sd_session_get_class()</code>,
<code class="function">sd_session_get_display()</code>,
<code class="function">sd_session_get_remote_user()</code>,
<code class="function">sd_session_get_remote_host()</code> and
<code class="function">sd_session_get_tty()</code> return 0 or
a positive integer. On failure, these calls return a
negative errno-style error code.</p></div><div class="refsect1"><a name="idm214182516336"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes"></a></h2><p>The <code class="function">sd_session_is_active()</code>,
<code class="function">sd_session_get_state()</code>,
<code class="function">sd_session_get_uid()</code>,
<code class="function">sd_session_get_seat()</code>,
<code class="function">sd_session_get_service()</code>,
<code class="function">sd_session_get_type()</code>,
<code class="function">sd_session_get_class()</code>,
<code class="function">sd_session_get_display()</code>,
<code class="function">sd_session_get_remote_host()</code>,
<code class="function">sd_session_get_remote_user()</code> and
<code class="function">sd_session_get_tty()</code>
interfaces are available as a shared library, which can
be compiled and linked to with the
<code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
file.</p></div><div class="refsect1"><a name="idm214182507008"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also"></a></h2><p>
<a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
<a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>,
<a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a>
</p></div></div></body></html>