source: general/sysutils/elogind.xml

trunk
Last change on this file was d05c484, checked in by Bruce Dubbs <bdubbs@…>, 8 days ago

Update to elogind-255.4-r2.

  • Property mode set to 100644
File size: 13.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY elogind-download-http "https://github.com/elogind/elogind/archive/v&elogind-version;/elogind-&elogind-version;.tar.gz">
8 <!ENTITY elogind-download-ftp " ">
9 <!ENTITY elogind-md5sum "864463a809190c724c11084f908db72c">
10 <!ENTITY elogind-size "2.0 MB">
11 <!ENTITY elogind-buildsize "48 MB (with tests)">
12 <!ENTITY elogind-time "0.4 SBU (with parallelism=4; with tests)">
13]>
14
15<sect1 id="elogind" revision="sysv" xreflabel="elogind-&elogind-version;">
16 <?dbhtml filename="elogind.html"?>
17
18
19 <title>elogind-&elogind-version;</title>
20
21 <indexterm zone="elogind">
22 <primary sortas="a-elogind">elogind</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to elogind</title>
27
28 <para>
29 <application>elogind</application> is the
30 <application>systemd</application> project's "logind", extracted to
31 be a standalone daemon. It integrates with <xref linkend="linux-pam"/>
32 to track all the users logged in to a system, and whether they
33 are logged in graphically, on the console, or remotely.
34 <application>Elogind</application> exposes this information via the
35 standard org.freedesktop.login1 <application>D-Bus</application>
36 interface, and also through the file system using systemd's standard
37 <filename class="directory">/run/systemd</filename> layout.
38 </para>
39
40 &lfs121_checked;
41
42 <bridgehead renderas="sect3">Package Information</bridgehead>
43 <itemizedlist spacing="compact">
44 <listitem>
45 <para>
46 Download (HTTP): <ulink url="&elogind-download-http;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download (FTP): <ulink url="&elogind-download-ftp;"/>
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download MD5 sum: &elogind-md5sum;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download size: &elogind-size;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated disk space required: &elogind-buildsize;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Estimated build time: &elogind-time;
72 </para>
73 </listitem>
74 </itemizedlist>
75
76 <bridgehead renderas="sect3">elogind Dependencies</bridgehead>
77
78 <bridgehead renderas="sect4">Recommended</bridgehead>
79 <para role="recommended">
80 <xref role="runtime" linkend="dbus"/> (runtime),
81 <xref linkend="linux-pam"/> (required for Xorg),
82 <xref role="runtime" linkend="polkit"/> (runtime),
83 <xref linkend="DocBook"/>,
84 <xref linkend="docbook-xsl"/>, and
85 <xref linkend="libxslt"/> (all three to build the man pages)
86 </para>
87
88 <bridgehead renderas="sect4">Optional</bridgehead>
89 <para role="optional">
90 <xref linkend="lxml"/>,
91 <xref linkend="zsh"/>,
92 <xref linkend="valgrind"/> (needed for tests),
93 <ulink url="https://github.com/linux-audit/audit-userspace">
94 audit-userspace</ulink>,
95 <ulink url="https://github.com/scop/bash-completion">
96 bash-completion</ulink>,
97 <ulink url="https://mirrors.edge.kernel.org/pub/linux/utils/kernel/kexec/">
98 kexec</ulink>, and
99 <ulink url="https://selinuxproject.org/page/Main_Page">
100 SELinux</ulink>
101 </para>
102
103 <para condition="html" role="usernotes">
104 Editor Notes: <ulink url="&blfs-wiki;/Logind"/>
105 </para>
106
107 </sect2>
108
109 <sect2 role="kernel" id="elogind-kernel">
110 <title>Kernel Configuration</title>
111
112 <para>
113 Enable the following options in the kernel configuration and recompile the
114 kernel if necessary:
115 </para>
116
117 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
118 href="elogind-kernel.xml"/>
119
120 <para>
121 In addition, some tests need the userspace cryptographic kernel API, which
122 is enabled with:
123 </para>
124
125 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
126 href="elogind-test-kernel.xml"/>
127
128 <indexterm zone="elogind elogind-kernel">
129 <primary sortas="d-elogind">elogind</primary>
130 </indexterm>
131 </sect2>
132
133 <sect2 role="installation">
134 <title>Installation of elogind</title>
135
136 <para>
137 Install <application>elogind</application> by running the following
138 commands:
139 </para>
140
141<screen><userinput>mkdir build &amp;&amp;
142cd build &amp;&amp;
143
144meson setup .. \
145 --prefix=/usr \
146 --buildtype=release \
147 -Dman=auto \
148 -Ddocdir=/usr/share/doc/elogind-&elogind-version; \
149 -Dcgroup-controller=elogind \
150 -Ddev-kvm-mode=0660 \
151 -Ddbuspolicydir=/etc/dbus-1/system.d &amp;&amp;
152ninja</userinput></screen>
153
154 <para>
155 To test the results, issue: <command>ninja test</command>. A few tests
156 are skipped if not run with &root; privileges.
157 Three tests, <filename>test-login</filename>, <filename>dbus-docs-fresh</filename>,
158 and <filename>check-version-history</filename>, are known to fail.
159 <!--
160 <filename>test-id128</filename> require the
161 <filename>/etc/machine-id</filename> symlink, so they will fail if
162 this symlink is not created following the instruction in
163 <xref linkend='dbus'/> yet.
164
165 I did have the symlink and test-fs-util still failed (the only
166 one). The error was
167 Assertion 'chase_symlinks(q, NULL, CHASE_SAFE, NULL, NULL) >= 0'
168 failed at src/test/test-fs-util.c:303, function
169 test_chase_symlinks(). Aborting.
170 Looking at teh code, I don't think that is related to the
171 /etc/machine-id symlink. - bdubbs, version 252.23
172 -->
173 </para>
174
175 <para>
176 Now, as the <systemitem class="username">root</systemitem> user:
177 </para>
178
179<screen role="root"><userinput>ninja install &amp;&amp;
180ln -sfv libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &amp;&amp;
181ln -sfvn elogind /usr/include/systemd</userinput></screen>
182
183 </sect2>
184
185 <sect2 role="commands">
186 <title>Command Explanations</title>
187 <!--
188 <para>
189 <command>sed ... meson.build</command>: This change allows the
190 package to be built without polkit being installed (it is still a
191 runtime dependency) but able to use polkit after that package is
192 installed.
193 </para>
194
195 <para>
196 <command>sed ... src/login/logind.c</command>: This change allows the
197 elogind daemon to exit when it is disconnected from dbus (for example
198 when dbus is killed).
199 </para>
200 -->
201 <para>
202 <parameter>-Ddocdir=/usr/share/doc/elogind-&elogind-version;</parameter>:
203 This is needed to install documentation in a versioned directory.
204 </para>
205
206 <para>
207 <parameter>-Dcgroup-controller=elogind</parameter>: This switch is
208 necessary to build this package when the kernel is not built with
209 <option>CONFIG_CGROUPS</option> enabled. Note that
210 <application>elogind</application> strictly needs
211 a kernel with <option>CONFIG_CGROUPS</option> enabled at runtime,
212 but this switch will allow building the package first.
213 </para>
214
215 <para>
216 <parameter>-Ddbuspolicydir=/etc/dbus-1/system.d</parameter>: This switch
217 sets the location of the <application>D-Bus</application> policy
218 directory.
219 </para>
220
221 <para>
222 <parameter>-Ddev-kvm-mode=0660</parameter>: The LFS udev rule sets the
223 mode of <filename class='devicefile'>/dev/kvm</filename> to 0660.
224 This option ensures the elogind udev rules consistent with the LFS
225 configuration.
226 </para>
227
228 <para>
229 <parameter>-Dman=auto</parameter>: The default value of this switch is
230 <emphasis>false</emphasis>. Setting it to <emphasis>auto</emphasis>
231 allows building and installing the man pages if the recommended
232 dependencies are installed.
233 </para>
234
235 <para>
236 <option>-Dhtml=auto</option>: The default value of this switch is
237 <emphasis>false</emphasis>. Setting it to <emphasis>auto</emphasis>
238 allows building and installing the html documentation if the recommended
239 dependencies are installed.
240 </para>
241
242 <para>
243 <option>-Ddefault-kill-user-processes=false</option>: Determines whether
244 the processes of a user should be killed when the user logs out. The
245 default is <emphasis>true</emphasis>, but this defeats the traditional
246 use of <command>screen</command> or <command>tmux</command>. This can
247 also be changed in the configuration file (see below).
248 </para>
249
250 <para>
251 <command>ln -s ...</command>: These commands install symlinks so that
252 software packages can find the systemd-compatible library and headers.
253 </para>
254
255 </sect2>
256
257 <sect2 role="configuration">
258 <title>Configuring elogind</title>
259
260 <sect3 id="elogind-config">
261 <title>Config File</title>
262 <para>
263 <filename>/etc/elogind/logind.conf</filename>
264 </para>
265
266 <indexterm zone="elogind elogind-config">
267 <primary
268 sortas="e-etc-elogind-logind.conf">/etc/elogind/logind.conf</primary>
269 </indexterm>
270 </sect3>
271
272 <sect3><title>Configuration Information</title>
273
274 <para>
275 The installed file <filename>/etc/elogind/logind.conf</filename>
276 contains all the possible options with their defaults, commented
277 out. You may wish to disable automatically killing user processes when the user logs
278 out, by running, as the <systemitem class="username">root</systemitem>
279 user:
280 </para>
281
282<screen role="root"><userinput>sed -e '/\[Login\]/a KillUserProcesses=no' \
283 -i /etc/elogind/logind.conf</userinput></screen>
284
285 <para>
286 Each user will need to register a user session using
287 <application>Linux-PAM</application> at login. The
288 <filename>/etc/pam.d/system-session</filename> file needs to
289 be modified and a new file must be created in order for
290 <command>elogind</command> to work correctly. Run the following
291 commands as the <systemitem class="username">root</systemitem> user:
292 </para>
293
294<screen role="root"><userinput>cat &gt;&gt; /etc/pam.d/system-session &lt;&lt; "EOF" &amp;&amp;
295<literal># Begin elogind addition
296
297session required pam_loginuid.so
298session optional pam_elogind.so
299
300# End elogind addition</literal>
301EOF
302cat &gt; /etc/pam.d/elogind-user &lt;&lt; "EOF"
303<literal># Begin /etc/pam.d/elogind-user
304
305account required pam_access.so
306account include system-account
307
308session required pam_env.so
309session required pam_limits.so
310session required pam_unix.so
311session required pam_loginuid.so
312session optional pam_keyinit.so force revoke
313session optional pam_elogind.so
314
315auth required pam_deny.so
316password required pam_deny.so
317
318# End /etc/pam.d/elogind-user</literal>
319EOF</userinput></screen>
320
321 <note>
322 <para>After completion of <application>elogind</application>,
323 you should check that it functions properly. First ensure that
324 <application>dbus</application> is running. It may be easiest
325 to do this by rebooting the system. After logging in again, run
326 the command <command>loginctl</command>. The result should indicate
327 that a SESSION and a SEAT have been created.</para>
328 </note>
329
330 </sect3>
331 </sect2>
332
333 <sect2 role="content" revision="sysv">
334 <title>Contents</title>
335
336 <segmentedlist>
337 <segtitle>Installed Programs</segtitle>
338 <segtitle>Installed Library</segtitle>
339 <segtitle>Installed Directories</segtitle>
340
341 <seglistitem>
342 <seg>
343 busctl,
344 elogind-inhibit, and
345 loginctl
346 </seg>
347 <seg>
348 libelogind.so
349 </seg>
350 <seg>
351 /usr/lib/elogind,
352 /etc/elogind,
353 /usr/include/elogind, and
354 /usr/share/doc/elogind-&elogind-version;
355 </seg>
356 </seglistitem>
357 </segmentedlist>
358
359 <variablelist>
360 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
361 <?dbfo list-presentation="list"?>
362 <?dbhtml list-presentation="table"?>
363
364 <varlistentry id="busctl">
365 <term><command>busctl</command></term>
366 <listitem>
367 <para>
368 is used to introspect and monitor the D-Bus bus
369 </para>
370 <indexterm zone="elogind busctl">
371 <primary sortas="b-busctl">busctl</primary>
372 </indexterm>
373 </listitem>
374 </varlistentry>
375
376 <varlistentry id="elogind-inhibit">
377 <term><command>elogind-inhibit</command></term>
378 <listitem>
379 <para>
380 is used to execute a program with a shutdown, sleep or idle
381 inhibitor lock taken
382 </para>
383 <indexterm zone="elogind elogind-inhibit">
384 <primary sortas="b-elogind-inhibit">elogind-inhibit</primary>
385 </indexterm>
386 </listitem>
387 </varlistentry>
388
389 <varlistentry id="loginctl">
390 <term><command>loginctl</command></term>
391 <listitem>
392 <para>
393 is used to introspect and control the state of the elogind Login
394 Manager
395 </para>
396 <indexterm zone="elogind loginctl">
397 <primary sortas="b-loginctl">loginctl</primary>
398 </indexterm>
399 </listitem>
400 </varlistentry>
401
402 <varlistentry id="libelogind">
403 <term><filename class="libraryfile">libelogind.so</filename></term>
404 <listitem>
405 <para>
406 is the main elogind utility library
407 </para>
408 <indexterm zone="elogind libelogind">
409 <primary sortas="c-libelogind">libelogind.so</primary>
410 </indexterm>
411 </listitem>
412 </varlistentry>
413
414 </variablelist>
415
416 </sect2>
417
418</sect1>
Note: See TracBrowser for help on using the repository browser.