commit af78e648b418d0d10a374d9bc2661b9a829eacd1
Author: Pete Travis <immanetize(a)fedoraproject.org>
Date: Sun Oct 5 23:45:09 2014 -0600
some systemd stateless system enhancements, and more notes in comments (TODO)
en-US/System_Daemons.xml | 78 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 78 insertions(+), 0 deletions(-)
---
diff --git a/en-US/System_Daemons.xml b/en-US/System_Daemons.xml
index a64cd82..82038f7 100644
--- a/en-US/System_Daemons.xml
+++ b/en-US/System_Daemons.xml
@@ -35,6 +35,84 @@
For detailed information, refer to <ulink
url="https://fedoraproject.org/wiki/Changes/PrivateDevicesAndPrivate...
/>
</para>
</section>
+ <section id="systemd-stateless">
+ <title>Stateless Systems</title>
+ <para>
+ The <ulink
url="https://fedoraproject.org/wiki/Features/UsrMove">usrmov...
Feature in Fedora 17 began a convention of distribution provided configurations residing
in <filename>/usr</filename>, with overriding administrator provided
configurations in <filename>/etc</filename>. The systemd project's
stateless systems effort goes a step further, to ensure that a system can boot
<emphasis>without</emphasis> the configuration files in
<filename>/etc</filename>.
+ </para>
+ <para>
+ This capabiity allows systems to be reset to a factory state, or various
installation types to share a predictable base system. Read <ulink
url="http://0pointer.de/blog/projects/stateless.html" /> to learn about the
potential of stateless systems.
+ </para>
+ <para>
+ Changes to <systemitem class="daemon">systemd</systemitem>
that enable stateless systems include:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>systemd-sysusers</emphasis>
+ </para>
+ <para>
+ The <systemitem>systemd-sysitems</systemitem> utlity creates system
users in <filename>/etc/passwd</filename> and system groups in
<filename>/etc/groups</filename> based on declared entries in
<filename>/usr/lib/sysusers.d/</filename>. This ensures that crucial accounts
are available in early boot.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>tmpfiles snippet for
<filename>/etc/filename</filename></emphasis>
+ </para>
+ <para>
+ <filename>/usr/lib/tmpfiles.d/etc.conf</filename> rebuilds
essential files in <filename>/etc</filename>, should they be missing.
Notably, a symlink is created linking <filename>/etc/os-release</filename> to
<filename>/usr/lib/os-release</filename>.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>ConditionNeedsUpdate directive</emphasis>
+ </para>
+ <para>
+ Service units can conditionally run only when related files in
<filename>/etc</filename> or <filename>/var</filename> are older
than the correlating files in <filename>/usr</filename>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>systemd presets</emphasis>
+ </para>
+ <para>
+ The new command <command>systemctl preset-all</command> applices
service preset settings to all unit files. The equivalent operation if the system is
booted with an empty <filename class="directory" >/etc</filename>.
Preset files for crucial services are provided with systemd in <filename
class="directory" >/usr/lib/systemd/system-preset/</filename>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <!--
+
+
+
+ <para>
+ file-heirarchy(7) describes minimized, modernized version of the filesystem
systemd expects, similar to heir(5) or FHS. tool: systemd-path
+ systemd-nspawn filters syscals for kernel module loading, io port access,
swap, kexec, more; for security
+ boot options: systemd.wants= systemd.mask= systemd.debug-shell(TTY9)
+ journald defaults to SplitMode=uid so users can see their coredumps
+ coredumpctl gains 'info' commmand to show details
+ systemd-coredump logs stack trace of running dumps to journal
+ systemd-coredup optionally stores to /var/lib/systemd/coredump instead of
journal
+ /dev/loop-control /dev/btrfs-control owned by 'disk' group
+ cryptsetup-pre for services that need to run before encypted mounts are up
+ service presets??
+ systemctl is-system-running
+ tmpfiles:
+ L+ force symlink
+ b+ force block device
+ c+ force character device
+ p+ force fifo
+ Omitting source for target automatically grabs correlating path based from
/usr/share/factory/path
+ mount units have SloppyOptions= mapping to -s of `mount`.
+ rpm macros for sysusers, sysctl, binfmt
+ input group for input devices compliments audio and video groups
+ networkd does DHCPv4 server
+ netowrkd does vxlan virtual networks, tun/tap devices, dummy devices
+ automatic allocation of address ranges for interfaces from a pool, used to
manage large numbers of interfaces, useful for many nspawn instances.
+ </para>
+ -->
+
+
</section>