]>
Commit | Line | Data |
---|---|---|
663996b3 MS |
1 | <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> |
2 | a.headerlink { | |
3 | color: #c60f0f; | |
4 | font-size: 0.8em; | |
5 | padding: 0 4px 0 4px; | |
6 | text-decoration: none; | |
7 | visibility: hidden; | |
8 | } | |
9 | ||
10 | a.headerlink:hover { | |
11 | background-color: #c60f0f; | |
12 | color: white; | |
13 | } | |
14 | ||
15 | h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink { | |
16 | visibility: visible; | |
17 | } | |
18 | </style><a href="index.html">Index </a>· | |
19 | <a href="systemd.directives.html">Directives </a>· | |
20 | <a href="../python-systemd/index.html">Python </a>· | |
21 | <a href="../libudev/index.html">libudev </a>· | |
5eef597e | 22 | <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 217</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_desktop, 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 <systemd/sd-login.h></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_desktop</b>(</code></td><td>const char *<var class="pdparam">session</var>, </td></tr><tr><td> </td><td>char **<var class="pdparam">desktop</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="idm214194513424"></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 |
663996b3 MS |
23 | be used to determine whether the session identified by |
24 | the specified session identifier is currently active | |
25 | (i.e. currently in the foreground and available for | |
60f067b4 JS |
26 | user input) or not.</p><p><code class="function">sd_session_is_remote()</code> may |
27 | be used to determine whether the session identified by | |
28 | the specified session identifier is a remote session | |
29 | (i.e. its remote host is known) or not.</p><p><code class="function">sd_session_get_state()</code> may | |
663996b3 MS |
30 | be used to determine the state of the session |
31 | identified by the specified session identifier. The | |
32 | following states are currently known: | |
14228c0d | 33 | "<code class="literal">online</code>" (session logged in, but |
663996b3 | 34 | session not active, i.e. not in the foreground), |
14228c0d | 35 | "<code class="literal">active</code>" (session logged in and |
663996b3 | 36 | active, i.e. in the foreground), |
14228c0d | 37 | "<code class="literal">closing</code>" (session nominally logged |
663996b3 MS |
38 | out, but some processes belonging to it are still |
39 | around). In the future additional states might be | |
40 | defined, client code should be written to be robust in | |
41 | regards to additional state strings being | |
42 | returned. This function is a more generic version of | |
43 | <code class="function">sd_session_is_active()</code>. The returned | |
44 | string needs to be freed with the libc | |
5eef597e | 45 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
663996b3 MS |
46 | call after use.</p><p><code class="function">sd_session_get_uid()</code> may be |
47 | used to determine the user identifier of the Unix user the session | |
48 | identified by the specified session identifier belongs | |
49 | to.</p><p><code class="function">sd_session_get_seat()</code> may | |
50 | be used to determine the seat identifier of the seat | |
51 | the session identified by the specified session | |
52 | identifier belongs to. Note that not all sessions are | |
53 | attached to a seat, this call will fail for them. The | |
54 | returned string needs to be freed with the libc | |
5eef597e | 55 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
663996b3 MS |
56 | call after use.</p><p><code class="function">sd_session_get_service()</code> |
57 | may be used to determine the name of the service (as | |
58 | passed during PAM session setup) that registered the | |
59 | session identified by the specified session | |
60 | identifier. The returned string needs to be freed with | |
61 | the libc | |
5eef597e | 62 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
663996b3 MS |
63 | call after use.</p><p><code class="function">sd_session_get_type()</code> may |
64 | be used to determine the type of the session | |
65 | identified by the specified session identifier. The | |
14228c0d | 66 | returned string is one of "<code class="literal">x11</code>", |
60f067b4 JS |
67 | "<code class="literal">wayland</code>", "<code class="literal">tty</code>", |
68 | "<code class="literal">mir</code>" or "<code class="literal">unspecified</code>" and | |
69 | needs to be freed with the libc | |
5eef597e | 70 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
663996b3 MS |
71 | call after use.</p><p><code class="function">sd_session_get_class()</code> may |
72 | be used to determine the class of the session | |
73 | identified by the specified session identifier. The | |
14228c0d MB |
74 | returned string is one of "<code class="literal">user</code>", |
75 | "<code class="literal">greeter</code>", | |
76 | "<code class="literal">lock-screen</code>", or | |
77 | "<code class="literal">background</code>" and needs to be freed | |
663996b3 | 78 | with the libc |
5eef597e MP |
79 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
80 | call after use.</p><p><code class="function">sd_session_get_desktop()</code> may | |
81 | be used to determine the brand of the desktop running on | |
82 | the session identified by the specified session identifier. | |
83 | This field can be set freely by desktop environments and | |
84 | does not follow any special formatting. However, desktops | |
85 | are strongly recommended to use the same identifiers and | |
86 | capitalization as for | |
87 | <code class="varname">$XDG_CURRENT_DESKTOP</code>, as defined by | |
88 | the <a class="ulink" href="http://standards.freedesktop.org/desktop-entry-spec/latest/" target="_top">Desktop | |
89 | Entry | |
90 | Specification</a>. The returned string needs to be | |
91 | freed with the libc | |
92 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> | |
663996b3 MS |
93 | call after use.</p><p><code class="function">sd_session_get_display()</code> |
94 | may be used to determine the X11 display of the | |
95 | session identified by the specified session | |
96 | identifier. The returned string needs to be | |
97 | freed with the libc | |
5eef597e | 98 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
60f067b4 JS |
99 | call after use.</p><p><code class="function">sd_session_get_remote_host()</code> |
100 | may be used to determine the remote hostname of the | |
101 | session identified by the specified session | |
102 | identifier. The returned string needs to be | |
103 | freed with the libc | |
5eef597e | 104 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
60f067b4 JS |
105 | call after use.</p><p><code class="function">sd_session_get_remote_user()</code> |
106 | may be used to determine the remote username of the | |
107 | session identified by the specified session | |
108 | identifier. The returned string needs to be | |
109 | freed with the libc | |
5eef597e | 110 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
60f067b4 JS |
111 | call after use. Note that this value is rarely known |
112 | to the system, and even then should not be relied on.</p><p><code class="function">sd_session_get_tty()</code> | |
663996b3 MS |
113 | may be used to determine the TTY device of the |
114 | session identified by the specified session | |
115 | identifier. The returned string needs to be | |
116 | freed with the libc | |
5eef597e | 117 | <a href="http://man7.org/linux/man-pages/man3/free.3.html"><span class="citerefentry"><span class="refentrytitle">free</span>(3)</span></a> |
14228c0d MB |
118 | call after use.</p><p><code class="function">sd_session_get_vt()</code> |
119 | may be used to determine the VT number of the | |
120 | session identified by the specified session | |
121 | identifier. This function will return an error if | |
122 | the seat does not support VTs.</p><p>If the <code class="varname">session</code> parameter of | |
123 | any of these functions is passed as | |
124 | <code class="constant">NULL</code>, the operation is executed | |
125 | for the session the calling process is a member of, if | |
5eef597e | 126 | there is any.</p></div><div class="refsect1"><a name="idm214189843936"></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, |
60f067b4 JS |
127 | <code class="function">sd_session_is_active()</code> and |
128 | <code class="function">sd_session_is_remote()</code> return a | |
129 | positive integer; if it fails, 0. On success, | |
663996b3 MS |
130 | <code class="function">sd_session_get_state()</code>, |
131 | <code class="function">sd_session_get_uid()</code>, | |
132 | <code class="function">sd_session_get_seat()</code>, | |
133 | <code class="function">sd_session_get_service()</code>, | |
134 | <code class="function">sd_session_get_type()</code>, | |
135 | <code class="function">sd_session_get_class()</code>, | |
60f067b4 JS |
136 | <code class="function">sd_session_get_display()</code>, |
137 | <code class="function">sd_session_get_remote_user()</code>, | |
138 | <code class="function">sd_session_get_remote_host()</code> and | |
663996b3 MS |
139 | <code class="function">sd_session_get_tty()</code> return 0 or |
140 | a positive integer. On failure, these calls return a | |
5eef597e | 141 | negative errno-style error code.</p></div><div class="refsect1"><a name="idm214189835040"></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>, |
663996b3 MS |
142 | <code class="function">sd_session_get_state()</code>, |
143 | <code class="function">sd_session_get_uid()</code>, | |
144 | <code class="function">sd_session_get_seat()</code>, | |
145 | <code class="function">sd_session_get_service()</code>, | |
146 | <code class="function">sd_session_get_type()</code>, | |
147 | <code class="function">sd_session_get_class()</code>, | |
60f067b4 JS |
148 | <code class="function">sd_session_get_display()</code>, |
149 | <code class="function">sd_session_get_remote_host()</code>, | |
150 | <code class="function">sd_session_get_remote_user()</code> and | |
663996b3 | 151 | <code class="function">sd_session_get_tty()</code> |
60f067b4 | 152 | interfaces are available as a shared library, which can |
663996b3 | 153 | be compiled and linked to with the |
5eef597e MP |
154 | <code class="constant">libsystemd</code> <a href="http://linux.die.net/man/1/pkg-config"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a> |
155 | file.</p></div><div class="refsect1"><a name="idm214189825472"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p> | |
663996b3 MS |
156 | <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>, |
157 | <a href="sd-login.html"><span class="citerefentry"><span class="refentrytitle">sd-login</span>(3)</span></a>, | |
158 | <a href="sd_pid_get_session.html"><span class="citerefentry"><span class="refentrytitle">sd_pid_get_session</span>(3)</span></a> | |
159 | </p></div></div></body></html> |