source: general/sysutils/elogind.xml@ 1db852a

12.0 12.1 12.2 gimp3 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128 xry111/xf86-video-removal
Last change on this file since 1db852a was 1db852a, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Update to elogind-252.9

ALso add forgotten changelog entry for sphinx

  • Property mode set to 100644
File size: 12.9 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
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 "2be2c43298e2fc41c5bee33dde605f01">
10 <!ENTITY elogind-size "1.8 MB">
11 <!ENTITY elogind-buildsize "45 MB (with tests)">
12 <!ENTITY elogind-time "0.3 SBU (with parallelism=4)">
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 &lfs113_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">User Notes:
104 <ulink url="&blfs-wiki;/elogind"/>
105 </para>
106 </sect2>
107
108 <sect2 role="kernel" id="elogind-kernel">
109 <title>Kernel Configuration</title>
110
111 <para>
112 Enable the following options in the kernel configuration and recompile the
113 kernel if necessary:
114 </para>
115
116<!-- Spaces are significant in <screen> sections -->
117<screen><literal>General setup ---&gt;
118 [*] Control Group support [CONFIG_CGROUPS]
119File systems ---&gt;
120 [*] Inotify support for userspace [CONFIG_INOTIFY_USER]
121 Pseudo filesystems ---&gt;
122 [*] Tmpfs POSIX Access Control Lists [CONFIG_TMPFS_POSIX_ACL]</literal></screen>
123
124 <para>
125 In addition, some tests need the userspace cryptographic kernel API, which
126 is enabled with:
127 </para>
128
129<screen><literal>-*- Cryptographic API ---&gt; [CONFIG_CRYPTO]
130 Crypto core or helper --->
131 &lt;M/*&gt; Userspace cryptographic algorithm configuration [CONFIG_CRYPTO_USER]
132 Userspace interface --->
133 &lt;M/*&gt; Hash algorithms [CONFIG_CRYPTO_USER_API_HASH]</literal></screen>
134
135 <indexterm zone="elogind elogind-kernel">
136 <primary sortas="d-elogind">elogind</primary>
137 </indexterm>
138 </sect2>
139
140 <sect2 role="installation">
141 <title>Installation of elogind</title>
142
143 <para>
144 Install <application>elogind</application> by running the following
145 commands:
146 </para>
147
148<screen><userinput><!--sed -i '/Disable polkit/,+8 d' meson.build &amp;&amp;
149
150sed '/request_name/i\
151r = sd_bus_set_exit_on_disconnect(m->bus, true);\
152if (r &lt; 0)\
153 return log_error_errno(r, "Failed to set exit on disconnect: %m");' \
154 -i src/login/logind.c &amp;&amp;
155
156-->mkdir build &amp;&amp;
157cd build &amp;&amp;
158
159meson setup .. \
160 --prefix=/usr \
161 --buildtype=release \
162 -Dman=auto \
163 -Ddocdir=/usr/share/doc/elogind-&elogind-version; \
164 -Dcgroup-controller=elogind \
165 -Ddbuspolicydir=/etc/dbus-1/system.d &amp;&amp;
166ninja</userinput></screen>
167
168 <para>
169 To test the results, issue: <command>ninja test</command>. A few tests
170 are skipped if not run with <systemitem class="username">root</systemitem>
171 privileges.
172 </para>
173
174 <para>
175 Now, as the <systemitem class="username">root</systemitem> user:
176 </para>
177
178<screen role="root"><userinput>ninja install &amp;&amp;
179ln -sfv libelogind.pc /usr/lib/pkgconfig/libsystemd.pc &amp;&amp;
180ln -sfvn elogind /usr/include/systemd</userinput></screen>
181
182 </sect2>
183
184 <sect2 role="commands">
185 <title>Command Explanations</title>
186 <!--
187 <para>
188 <command>sed ... meson.build</command>: This change allows the
189 package to be built without polkit being installed (it is still a
190 runtime dependency) but able to use polkit after that package is
191 installed.
192 </para>
193
194 <para>
195 <command>sed ... src/login/logind.c</command>: This change allows the
196 elogind daemon to exit when it is disconnected from dbus (for example
197 when dbus is killed).
198 </para>
199 -->
200 <para>
201 <parameter>-Ddocdir=/usr/share/doc/elogind-&elogind-version;</parameter>:
202 This is needed to install documentation in a versioned directory.
203 </para>
204
205 <para>
206 <parameter>-Dcgroup-controller=elogind</parameter>: This switch ensures
207 that <application>elogind</application> is selected as the cgroup
208 controller, even if booted with another running cgroup controller.
209 </para>
210
211 <para>
212 <parameter>-Ddbuspolicydir=/etc/dbus-1/system.d</parameter>: This switch
213 sets the location of the <application>D-Bus</application> policy
214 directory.
215 </para>
216
217 <para>
218 <parameter>-Dman=auto</parameter>: The default value of this switch is
219 <emphasis>false</emphasis>. Setting it to <emphasis>auto</emphasis>
220 allows building and installing the man pages if the recommended
221 dependencies are installed.
222 </para>
223
224 <para>
225 <option>-Dhtml=auto</option>: The default value of this switch is
226 <emphasis>false</emphasis>. Setting it to <emphasis>auto</emphasis>
227 allows building and installing the html documentation if the recommended
228 dependencies are installed.
229 </para>
230
231 <para>
232 <option>-Ddefault-kill-user-processes=false</option>: Determines whether
233 the processes of a user should be killed when the user logs out. The
234 default is <emphasis>true</emphasis>, but this defeats the traditional
235 use of <command>screen</command> or <command>tmux</command>. This can
236 also be changed in the configuration file (see below).
237 </para>
238
239 <para>
240 <command>ln -s ...</command>: These commands install symlinks so that
241 software packages can find the systemd-compatible library and headers.
242 </para>
243
244 </sect2>
245
246 <sect2 role="configuration">
247 <title>Configuring elogind</title>
248
249 <sect3 id="elogind-config">
250 <title>Config File</title>
251 <para>
252 <filename>/etc/elogind/logind.conf</filename>
253 </para>
254
255 <indexterm zone="elogind elogind-config">
256 <primary
257 sortas="e-etc-elogind-logind.conf">/etc/elogind/logind.conf</primary>
258 </indexterm>
259 </sect3>
260
261 <sect3><title>Configuration Information</title>
262
263 <para>
264 The installed file <filename>/etc/elogind/logind.conf</filename>
265 contains all the possible options with their defaults, commented
266 out. You may wish to disable automatically killing user processes when the user logs
267 out, by running, as the <systemitem class="username">root</systemitem>
268 user:
269 </para>
270
271<screen role="root"><userinput>sed -e '/\[Login\]/a KillUserProcesses=no' \
272 -i /etc/elogind/logind.conf</userinput></screen>
273
274 <para>
275 Each user will need to register a user session using
276 <application>Linux-PAM</application> at login. The
277 <filename>/etc/pam.d/system-session</filename> file needs to
278 be modified and a new file must be created in order for
279 <command>elogind</command> to work correctly. Run the following
280 commands as the <systemitem class="username">root</systemitem> user:
281 </para>
282
283<screen role="root"><userinput>cat &gt;&gt; /etc/pam.d/system-session &lt;&lt; "EOF" &amp;&amp;
284<literal># Begin elogind addition
285
286session required pam_loginuid.so
287session optional pam_elogind.so
288
289# End elogind addition</literal>
290EOF
291cat &gt; /etc/pam.d/elogind-user &lt;&lt; "EOF"
292<literal># Begin /etc/pam.d/elogind-user
293
294account required pam_access.so
295account include system-account
296
297session required pam_env.so
298session required pam_limits.so
299session required pam_unix.so
300session required pam_loginuid.so
301session optional pam_keyinit.so force revoke
302session optional pam_elogind.so
303
304auth required pam_deny.so
305password required pam_deny.so
306
307# End /etc/pam.d/elogind-user</literal>
308EOF</userinput></screen>
309
310 </sect3>
311 </sect2>
312
313 <sect2 role="content" revision="sysv">
314 <title>Contents</title>
315
316 <segmentedlist>
317 <segtitle>Installed Programs</segtitle>
318 <segtitle>Installed Library</segtitle>
319 <segtitle>Installed Directories</segtitle>
320
321 <seglistitem>
322 <seg>
323 busctl,
324 elogind-inhibit, and
325 loginctl
326 </seg>
327 <seg>
328 libelogind.so
329 </seg>
330 <seg>
331 /usr/lib/elogind,
332 /etc/elogind,
333 /usr/include/elogind, and
334 /usr/share/doc/elogind-&elogind-version;
335 </seg>
336 </seglistitem>
337 </segmentedlist>
338
339 <variablelist>
340 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
341 <?dbfo list-presentation="list"?>
342 <?dbhtml list-presentation="table"?>
343
344 <varlistentry id="busctl">
345 <term><command>busctl</command></term>
346 <listitem>
347 <para>
348 is used to introspect and monitor the D-Bus bus
349 </para>
350 <indexterm zone="elogind busctl">
351 <primary sortas="b-busctl">busctl</primary>
352 </indexterm>
353 </listitem>
354 </varlistentry>
355
356 <varlistentry id="elogind-inhibit">
357 <term><command>elogind-inhibit</command></term>
358 <listitem>
359 <para>
360 is used to execute a program with a shutdown, sleep or idle
361 inhibitor lock taken
362 </para>
363 <indexterm zone="elogind elogind-inhibit">
364 <primary sortas="b-elogind-inhibit">elogind-inhibit</primary>
365 </indexterm>
366 </listitem>
367 </varlistentry>
368
369 <varlistentry id="loginctl">
370 <term><command>loginctl</command></term>
371 <listitem>
372 <para>
373 is used to introspect and control the state of the elogind Login
374 Manager
375 </para>
376 <indexterm zone="elogind loginctl">
377 <primary sortas="b-loginctl">loginctl</primary>
378 </indexterm>
379 </listitem>
380 </varlistentry>
381
382 <varlistentry id="libelogind">
383 <term><filename class="libraryfile">libelogind.so</filename></term>
384 <listitem>
385 <para>
386 is the main elogind utility library
387 </para>
388 <indexterm zone="elogind libelogind">
389 <primary sortas="c-libelogind">libelogind.so</primary>
390 </indexterm>
391 </listitem>
392 </varlistentry>
393
394 </variablelist>
395
396 </sect2>
397
398</sect1>
Note: See TracBrowser for help on using the repository browser.