123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626 |
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
- <!ENTITY % general-entities SYSTEM "../general.ent">
- %general-entities;
- ]>
- <sect1 id="ch-system-systemd" role="wrap">
- <?dbhtml filename="systemd.html"?>
- <sect1info condition="script">
- <productname>systemd</productname>
- <productnumber>&systemd-version;</productnumber>
- <address>&systemd-url;</address>
- </sect1info>
- <title>Systemd-&systemd-version;</title>
- <indexterm zone="ch-system-systemd">
- <primary sortas="a-Systemd">Systemd</primary>
- </indexterm>
- <sect2 role="package">
- <title/>
- <para>The Systemd package contains programs for controlling the startup,
- running, and shutdown of the system.</para>
- <segmentedlist>
- <segtitle>&buildtime;</segtitle>
- <segtitle>&diskspace;</segtitle>
- <seglistitem>
- <seg>&systemd-ch6-sbu;</seg>
- <seg>&systemd-ch6-du;</seg>
- </seglistitem>
- </segmentedlist>
- </sect2>
- <sect2 role="installation">
- <title>Installation of Systemd</title>
- <note><para>If systemd is not desired at all, it can be skipped. However a
- udev replacement must be installed. See the hint at <ulink
- url="http://www.linuxfromscratch.org/hints/downloads/files/eudev-alt-hint.txt"/>
- to find procedures to install
- <application>eudev</application>.</para></note>
- <para>First, create a file to allow Systemd to build when using Util-Linux
- built in Chapter 5:</para>
- <screen><userinput remap="pre">cat > config.cache << "EOF"
- <literal>KILL=/bin/kill
- HAVE_BLKID=1
- BLKID_LIBS="-lblkid"
- BLKID_CFLAGS="-I/tools/include/blkid"
- cc_cv_CFLAGS__flto=no</literal>
- EOF</userinput></screen>
- <para>Additionally, fix a build error when using Util-Linux built in
- Chapter 5:</para>
- <screen><userinput remap="pre">sed -i "s:blkid/::" $(grep -rl "blkid/blkid.h")</userinput></screen>
- <para>Apply a patch so that compat <command>pkg-config</command> files get
- installed without installing compat libs which are useless on LFS:</para>
- <screen><userinput remap="pre">patch -Np1 -i ../&systemd-compat-patch;</userinput></screen>
- <para>Prepare Systemd for compilation:</para>
- <screen><userinput remap="configure">./configure --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --config-cache \
- --with-rootprefix= \
- --with-rootlibdir=/lib \
- --enable-split-usr \
- --disable-gudev \
- --without-python \
- --docdir=/usr/share/doc/systemd-&systemd-version; \
- --with-dbuspolicydir=/etc/dbus-1/system.d \
- --with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
- --with-dbussessionservicedir=/usr/share/dbus-1/services \
- --with-dbussystemservicedir=/usr/share/dbus-1/system-services</userinput></screen>
- <variablelist>
- <title>The meaning of the configure options:</title>
- <varlistentry>
- <term><parameter>--config-cache</parameter></term>
- <listitem>
- <para>This switch tells the build system to use
- the <filename>config.cache</filename> file which
- was created earlier.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>--with-root*</parameter></term>
- <listitem>
- <para>These switches ensure that core programs and
- shared libraries are installed in the subdirectories
- of the root partition.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>--enable-split-usr</parameter></term>
- <listitem>
- <para>This switch ensures that Systemd will work on
- systems where /bin, /lib and /sbin directories are not
- symlinks to their /usr counterparts.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>--disable-gudev --without-python</parameter></term>
- <listitem>
- <para>These switches disable optional features because
- LFS does not provide their dependencies.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><parameter>--with-dbus*</parameter></term>
- <listitem>
- <para>These switches ensure that D-Bus configuratil files
- get installed in the correct locations.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- <para>Compile the package:</para>
- <screen><userinput remap="make">make LIBRARY_PATH=/tools/lib</userinput></screen>
- <para>First prevent few broken test cases from running:</para>
- <screen><userinput remap="test">sed -e "s:test/udev-test.pl::g" \
- -e "s:test-bus-cleanup\$(EXEEXT) ::g" \
- -e "s:test-bus-gvariant\$(EXEEXT) ::g" \
- -i Makefile</userinput></screen>
- <para>To test the results, issue:</para>
- <screen><userinput remap="test">make -k check</userinput></screen>
- <para>Note that some tests might fail because the test are being run in a
- chroot environment. For full test coverage, the test suite should be run
- from a system booted using Systemd.</para>
- <para>Install the package:</para>
- <screen><userinput remap="install">make LD_LIBRARY_PATH=/tools/lib install</userinput></screen>
- <para>Move NSS myhostname library to <filename
- class="directory">/lib</filename>:</para>
- <screen><userinput remap="install">mv -v /usr/lib/libnss_myhostname.so.2 /lib</userinput></screen>
- <para>Remove an unnecessary directory:</para>
- <screen><userinput remap="install">rm -rfv /usr/lib/rpm</userinput></screen>
- <para>Create the Sysvinit compatibility symlinks, and move some man pages
- and a library that conflict with <xref linkend="ch-system-sysvinit"/> so
- both systems can be installed side-by-side:</para>
- <screen><userinput remap="install">for tool in runlevel reboot shutdown poweroff halt telinit; do
- ln -sfv ../bin/systemctl /sbin/${tool}-systemd
- mv -v /usr/share/man/man8/${tool}.8 /usr/share/man/man8/${tool}-systemd.8
- done
- ln -sfv ../lib/systemd/systemd /sbin/init-systemd
- mv -v /etc/init.d /etc/init.d-systemd</userinput></screen>
- <para>Remove a reference to a non-existent group:</para>
- <screen><userinput remap="install">sed -i "s:0775 root lock:0755 root root:g" /usr/lib/tmpfiles.d/legacy.conf</userinput></screen>
- <para>Create the <filename>/etc/machine-id</filename> file needed by
- Journald:</para>
- <screen><userinput remap="install">systemd-machine-id-setup</userinput></screen>
- <para>Finally install some LFS specific udev rules:</para>
- <screen><userinput remap="install">tar -xf ../&udev-lfs-version;.tar.bz2
- make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
- </sect2>
- <sect2 id="contents-systemd" role="content">
- <title>Contents of Systemd</title>
- <segmentedlist>
- <segtitle>Installed programs</segtitle>
- <segtitle>Installed libraries</segtitle>
- <segtitle>Installed directories</segtitle>
- <seglistitem>
- <seg>bootctl, busctl, halt, hostnamectl, init, journalctl, kernel-install,
- localectl, loginctl, machinectl, poweroff, reboot, runlevel, shutdown,
- systemctl, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls,
- systemd-cgtop, systemd-coredumpctl, systemd-delta, systemd-detect-virt,
- systemd-inhibit, systemd-machine-id-setup, systemd-notify, systemd-nspawn,
- systemd-run, systemd-stdio-bridge, systemd-tmpfiles, systemd-tty-ask-password-agent,
- telinit, timedatectl, and udevadm</seg>
- <seg>libnss_myhostname.so.2, libsystemd.so, libudev.so</seg>
- <seg>/etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d,
- /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev,
- /etc/xdg/systemd, /lib/systemd, /lib/udev, /usr/include/systemd,
- /usr/lib/binfmt.d, /usr/lib/kernel, /usr/lib/modules-load.d,
- /usr/lib/sysctl.d, /usr/lib/systemd, /usr/lib/tmpfiles.d,
- /usr/share/doc/systemd-&systemd-version;, /usr/share/systemd,
- /var/lib/systemd, /var/log/journal</seg>
- </seglistitem>
- </segmentedlist>
- <variablelist>
- <bridgehead renderas="sect3">Short Descriptions</bridgehead>
- <?dbfo list-presentation="list"?>
- <?dbhtml list-presentation="table"?>
- <varlistentry id="bootctl">
- <term><command>bootctl</command></term>
- <listitem>
- <para>used to query the firmware and boot manager settings.</para>
- <indexterm zone="ch-system-systemd bootctl">
- <primary sortas="b-bootctl">bootctl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="busctl">
- <term><command>busctl</command></term>
- <listitem>
- <para>used to introspect and monitor the D-Bus bus.</para>
- <indexterm zone="ch-system-systemd busctl">
- <primary sortas="b-busctl">busctl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="halt">
- <term><command>halt</command></term>
- <listitem>
- <para>Normally invokes <command>shutdown</command> with the
- <parameter>-h</parameter> option, except when already in run-level 0,
- then it tells the kernel to halt the system; it notes in the
- file <filename>/var/log/wtmp</filename> that the system is being
- brought down.</para>
- <indexterm zone="ch-system-systemd halt">
- <primary sortas="b-halt">halt</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="hostnamectl">
- <term><command>hostnamectl</command></term>
- <listitem>
- <para>used to query and change the system hostname and related
- settings.</para>
- <indexterm zone="ch-system-systemd hostnamectl">
- <primary sortas="b-hostnamectl">hostnamectl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="init">
- <term><command>init</command></term>
- <listitem>
- <para>The first process to be started when the kernel has initialized
- the hardware which takes over the boot process and starts all the
- proceses it is instructed to.</para>
- <indexterm zone="ch-system-systemd init">
- <primary sortas="b-init">init</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="journalctl">
- <term><command>journalctl</command></term>
- <listitem>
- <para>used to query the contents of the Systemd Journal.</para>
- <indexterm zone="ch-system-systemd journalctl">
- <primary sortas="b-journalctl">journalctl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="kernel-install">
- <term><command>kernel-install</command></term>
- <listitem>
- <para>used to add and remove kernel and initramfs images to and
- from /boot.</para>
- <indexterm zone="ch-system-systemd kernel-install">
- <primary sortas="b-kernel-install">kernel-install</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="localectl">
- <term><command>localectl</command></term>
- <listitem>
- <para>used to query and change the system locale and keyboard layout
- settings.</para>
- <indexterm zone="ch-system-systemd localectl">
- <primary sortas="b-localectl">localectl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="loginctl">
- <term><command>loginctl</command></term>
- <listitem>
- <para>used to introspect and control the state of the Systemd Login
- Manager.</para>
- <indexterm zone="ch-system-systemd loginctl">
- <primary sortas="b-loginctl">loginctl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="machinectl">
- <term><command>machinectl</command></term>
- <listitem>
- <para>used to introspect and control the state of the Systemd Virtual
- Machine and Container Registration Manager</para>
- <indexterm zone="ch-system-systemd machinectl">
- <primary sortas="b-machinectl">machinectl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="poweroff">
- <term><command>poweroff</command></term>
- <listitem>
- <para>Tells the kernel to halt the system and switch off the computer
- (see <command>halt</command>).</para>
- <indexterm zone="ch-system-systemd poweroff">
- <primary sortas="b-poweroff">poweroff</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="reboot">
- <term><command>reboot</command></term>
- <listitem>
- <para>Tells the kernel to reboot the system (see
- <command>halt</command>).</para>
- <indexterm zone="ch-system-systemd reboot">
- <primary sortas="b-reboot">reboot</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="runlevel">
- <term><command>runlevel</command></term>
- <listitem>
- <para>Reports the previous and the current run-level, as noted in the
- last run-level record in <filename>/var/run/utmp</filename>.</para>
- <indexterm zone="ch-system-systemd runlevel">
- <primary sortas="b-runlevel">runlevel</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="shutdown">
- <term><command>shutdown</command></term>
- <listitem>
- <para>Brings the system down in a secure way, signaling all processes
- and notifying all logged-in users.</para>
- <indexterm zone="ch-system-systemd shutdown">
- <primary sortas="b-shutdown">shutdown</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemctl">
- <term><command>systemctl</command></term>
- <listitem>
- <para>used to introspect and control the state of the Systemd system and
- service manager.</para>
- <indexterm zone="ch-system-systemd systemctl">
- <primary sortas="b-systemctl">systemctl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-analyze">
- <term><command>systemd-analyze</command></term>
- <listitem>
- <para>used to determine system boot-up performance of the current boot.
- </para>
- <indexterm zone="ch-system-systemd systemd-analyze">
- <primary sortas="b-systemd-analyze">systemd-analyze</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-ask-password">
- <term><command>systemd-ask-password</command></term>
- <listitem>
- <para>used to query a system password or passphrase from the user, using a
- question message specified on the command line.</para>
- <indexterm zone="ch-system-systemd systemd-ask-password">
- <primary sortas="b-systemd-ask-password">systemd-ask-password</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-cat">
- <term><command>systemd-cat</command></term>
- <listitem>
- <para>used to connect STDOUT and STDERR of a process with the Journal.
- </para>
- <indexterm zone="ch-system-systemd systemd-cat">
- <primary sortas="b-systemd-cat">systemd-cat</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-cgls">
- <term><command>systemd-cgls</command></term>
- <listitem>
- <para>recursively shows the contents of the selected Linux control group
- hierarchy in a tree.</para>
- <indexterm zone="ch-system-systemd systemd-cgls">
- <primary sortas="b-systemd-cgls">systemd-cgls</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-cgtop">
- <term><command>systemd-cgtop</command></term>
- <listitem>
- <para>shows the top control groups of the local Linux control group hierarchy,
- ordered by their CPU, memory and disk I/O load.</para>
- <indexterm zone="ch-system-systemd systemd-cgtop">
- <primary sortas="b-systemd-cgtop">systemd-cgtop</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-coredumpctl">
- <term><command>systemd-coredumpctl</command></term>
- <listitem>
- <para>used to retrieve coredumps from the Systemd Journal</para>
- <indexterm zone="ch-system-systemd systemd-coredumpctl">
- <primary sortas="b-systemd-coredumpctl">systemd-coredumpctl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-delta">
- <term><command>systemd-delta</command></term>
- <listitem>
- <para>used to identify and compare configuration files in
- <filename class="directory">/etc</filename> that override default
- counterparts in <filename class="directory">/usr</filename>.</para>
- <indexterm zone="ch-system-systemd systemd-delta">
- <primary sortas="b-systemd-delta">systemd-delta</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-detect-virt">
- <term><command>systemd-detect-virt</command></term>
- <listitem>
- <para>detects execution in a virtualized environment.</para>
- <indexterm zone="ch-system-systemd systemd-detect-virt">
- <primary sortas="b-systemd-detect-virt">systemd-detect-virt</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-inhibit">
- <term><command>systemd-inhibit</command></term>
- <listitem>
- <para>used to execute a program with a shutdown, sleep or idle inhibitor lock
- taken.</para>
- <indexterm zone="ch-system-systemd systemd-inhibit">
- <primary sortas="b-systemd-inhibit">systemd-inhibit</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-machine-id-setup">
- <term><command>systemd-machine-id-setup</command></term>
- <listitem>
- <para>used by system installer tools to initialize the machine ID stored in
- <filename>/etc/machine-id</filename> at install time with a randomly
- generated ID.</para>
- <indexterm zone="ch-system-systemd systemd-machine-id-setup">
- <primary sortas="b-systemd-machine-id-setup">systemd-machine-id-setup</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-notify">
- <term><command>systemd-notify</command></term>
- <listitem>
- <para>used by daemon scripts to notify the init system about status changes.
- </para>
- <indexterm zone="ch-system-systemd systemd-notify">
- <primary sortas="b-systemd-notify">systemd-notify</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-nspawn">
- <term><command>systemd-nspawn</command></term>
- <listitem>
- <para>used to run a command or OS in a light-weight namespace container.</para>
- <indexterm zone="ch-system-systemd systemd-nspawn">
- <primary sortas="b-systemd-nspawn">systemd-nspawn</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-run">
- <term><command>systemd-run</command></term>
- <listitem>
- <para>used to create and start a transient .service or a .scope unit and
- run the specified command in it.</para>
- <indexterm zone="ch-system-systemd systemd-run">
- <primary sortas="b-systemd-run">systemd-run</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <!-- <varlistentry id="systemd-stdio-bridge">
- <term><command>systemd-stdio-bridge</command></term>
- <listitem>
- <para>To be completed</para>
- <indexterm zone="ch-system-systemd systemd-stdio-bridge">
- <primary sortas="b-systemd-stdio-bridge">systemd-stdio-bridge</primary>
- </indexterm>
- </listitem>
- </varlistentry> -->
- <varlistentry id="systemd-tmpfiles">
- <term><command>systemd-tmpfiles</command></term>
- <listitem>
- <para>creates, deletes and cleans up volatile and temporary files and directories,
- based on the configuration file format and location specified in
- <filename class="directory">tmpfiles.d</filename> directories.</para>
- <indexterm zone="ch-system-systemd systemd-tmpfiles">
- <primary sortas="b-systemd-tmpfiles">systemd-tmpfiles</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="systemd-tty-ask-password-agent">
- <term><command>systemd-tty-ask-password-agent</command></term>
- <listitem>
- <para>used to list or process pending Systemd password requests</para>
- <indexterm zone="ch-system-systemd systemd-tty-ask-password-agent">
- <primary sortas="b-systemd-tty-ask-password-agent">systemd-tty-ask-password-agent</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="telinit">
- <term><command>telinit</command></term>
- <listitem>
- <para>Tells <command>init</command> which run-level to change to.</para>
- <indexterm zone="ch-system-systemd telinit">
- <primary sortas="b-telinit">telinit</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="timedatectl">
- <term><command>timedatectl</command></term>
- <listitem>
- <para>used to query and change the system clock and its settings.
- </para>
- <indexterm zone="ch-system-systemd timedatectl">
- <primary sortas="b-timedatectl">timedatectl</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="udevadm">
- <term><command>udevadm</command></term>
- <listitem>
- <para>Generic Udev administration tool: controls the udevd daemon,
- provides info from the Udev database, monitors uevents, waits for
- uevents to finish, tests Udev configuration, and triggers uevents
- for a given device.</para>
- <indexterm zone="ch-system-systemd udevadm">
- <primary sortas="b-udevadm">udevadm</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="libsystemd">
- <term><filename class="libraryfile">libsystemd</filename></term>
- <listitem>
- <para>Systemd utility library.</para>
- <indexterm zone="ch-system-systemd libsystemd">
- <primary sortas="c-libsystemd">libsystemd</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- <varlistentry id="libudev">
- <term><filename class="libraryfile">libudev</filename></term>
- <listitem>
- <para>A library to access Udev device information.</para>
- <indexterm zone="ch-system-systemd libudev">
- <primary sortas="c-libudev">libudev</primary>
- </indexterm>
- </listitem>
- </varlistentry>
- </variablelist>
- </sect2>
- </sect1>
|