%general-entities; ]> systemd &systemd-version;
&systemd-url;
Systemd-&systemd-version; systemd <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-fin-sbu;</seg> <seg>&systemd-fin-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Installation of systemd First, fix an issue introduced by glibc-2.36. patch -Np1 -i ../&systemd-upstream-patch; Remove two unneeded groups, render and sgx, from the default udev rules: sed -i -e 's/GROUP="render"/GROUP="video"/' \ -e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in Prepare systemd for compilation: mkdir -p build cd build meson --prefix=/usr \ --buildtype=release \ -Ddefault-dnssec=no \ -Dfirstboot=false \ -Dinstall-tests=false \ -Dldconfig=false \ -Dsysusers=false \ -Drpmmacrosdir=no \ -Dhomed=false \ -Duserdb=false \ -Dman=false \ -Dmode=release \ -Dpamconfdir=no \ -Ddocdir=/usr/share/doc/systemd-&systemd-version; \ .. The meaning of the meson options: --buildtype=release This switch overrides the default buildtype (debug), which would produce unoptimized binaries. -Ddefault-dnssec=no This switch turns off the experimental DNSSEC support. -Dfirstboot=false This switch prevents installation of systemd services responsible for setting up the system for the first time. They are not useful for LFS because everything is done manually. -Dinstall-tests=false This switch prevents installation of the compiled tests. -Dldconfig=false This switch prevents installation of a systemd unit that runs ldconfig at boot, which is not useful for source distributions such as LFS and makes the boot time longer. Remove it if the described feature is desired. -Dsysusers=false This switch prevents installation of systemd services responsible for setting up the /etc/group and /etc/passwd files. Both files were created in the previous chapter. This daemon is not useful on an LFS system since user accounts are manually created. -Drpmmacrosdir=no This switch disables installation of RPM Macros for use with systemd because LFS does not support RPM. -D{userdb,homed}=false Remove two daemons that have dependencies that do not fit the scope of LFS. -Dman=false Prevent the generation of man pages to avoid extra dependencies. We will install pre-generated man pages for systemd from a tarball later. -Dmode=release Disable some features considered experimental by upstream. -Dpamconfdir=no Prevent the installation of a PAM configuration file not functional on LFS. Compile the package: ninja Install the package: ninja install Install the man pages: tar -xf ../../systemd-man-pages-&systemd-man-version;.tar.xz --strip-components=1 -C /usr/share/man Create the /etc/machine-id file needed by systemd-journald: systemd-machine-id-setup Setup the basic target structure: systemctl preset-all Disable a service for upgrading binary distros. It's useless for a basic Linux system built from source, and it will report an error if it's enabled but not configured: systemctl disable systemd-sysupdate Contents of systemd Installed programs Installed libraries Installed directories busctl, coredumpctl, halt (symlink to systemctl), hostnamectl, init, journalctl, kernel-install, localectl, loginctl, machinectl, networkctl, oomctl, portablectl, poweroff (symlink to systemctl), reboot (symlink to systemctl), resolvconf (symlink to resolvectl), resolvectl, runlevel (symlink to systemctl), shutdown (symlink to systemctl), systemctl, systemd-analyze, systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop, systemd-creds, systemd-delta, systemd-detect-virt, systemd-dissect, systemd-escape, systemd-hwdb, systemd-id128, systemd-inhibit, systemd-machine-id-setup, systemd-mount, systemd-notify, systemd-nspawn, systemd-path, systemd-repart, systemd-resolve (symlink to resolvectl), systemd-run, systemd-socket-activate, systemd-stdio-bridge, systemd-sysext, systemd-tmpfiles, systemd-tty-ask-password-agent, systemd-umount (symlink to systemd-mount), telinit (symlink to systemctl), timedatectl, and udevadm libnss_myhostname.so.2, libnss_mymachines.so.2, libnss_resolve.so.2, libnss_systemd.so.2, libsystemd.so, libsystemd-shared-&systemd-version;.so (in /usr/lib/systemd), and libudev.so /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, /usr/lib/systemd, /usr/lib/udev, /usr/include/systemd, /usr/lib/binfmt.d, /usr/lib/environment.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/factory, /usr/share/systemd, /var/lib/systemd, and /var/log/journal Short Descriptions busctl Is used to introspect and monitor the D-Bus bus busctl coredumpctl Is used to retrieve coredumps from the systemd journal coredumpctl halt Normally invokes shutdown with the -h option, except when already in run-level 0, then it tells the kernel to halt the system; it notes in the file /var/log/wtmp that the system is being brought down halt hostnamectl Is used to query and change the system hostname and related settings hostnamectl init Is the first process to be started when the kernel has initialized the hardware which takes over the boot process and starts all processes according to its configuration files. In this case, it starts systemd init journalctl Is used to query the contents of the systemd journal journalctl kernel-install Is used to add and remove kernel and initramfs images to and from /boot. In LFS, this is done manually kernel-install localectl Is used to query and change the system locale and keyboard layout settings localectl loginctl Is used to introspect and control the state of the systemd Login Manager loginctl machinectl Is used to introspect and control the state of the systemd Virtual Machine and Container Registration Manager machinectl networkctl Is used to introspect and configure the state of the network links configured by systemd-networkd networkctl oomctl Controls the systemd Out Of Memory daemon oomctl portablectl Is used to attach or detach portable services from the local system portablectl poweroff Instructs the kernel to halt the system and switch off the computer (see halt) poweroff reboot Instructs the kernel to reboot the system (see halt) reboot resolvconf Registers DNS server and domain configuration with systemd-resolved resolvconf resolvectl Sends control commands to the network name resolution manager, or resolves domain names, IPv4 and IPv6 addresses, DNS records, and services resolvectl runlevel Outputs the previous and the current run-level, as noted in the last run-level record in /run/utmp runlevel shutdown Brings the system down in a safe and secure manner, signaling all processes and notifying all logged-in users shutdown systemctl Is used to introspect and control the state of the systemd system and service manager systemctl systemd-analyze Is used to determine system startup performance of the current boot, as well as identify troublesome systemd units systemd-analyze systemd-ask-password Is used to query a system password or passphrase from the user, using a question message specified on the command line systemd-ask-password systemd-cat Is used to connect the STDOUT and STDERR outputs of a process with the systemd journal systemd-cat systemd-cgls Recursively shows the contents of the selected Linux control group hierarchy in a tree systemd-cgls systemd-cgtop Shows the top control groups of the local Linux control group hierarchy, ordered by their CPU, memory and disk I/O load systemd-cgtop systemd-creds Displays and processes credentials systemd-creds systemd-delta Is used to identify and compare configuration files in /etc that override default counterparts in /usr systemd-delta systemd-detect-virt Detects whether the system is being run in a virtual environment, and adjusts udev accordingly systemd-detect-virt systemd-dissect Is used to inspect OS disk images systemd-dissect systemd-escape Is used to escape strings for inclusion in systemd unit names systemd-escape systemd-hwdb Is used to manage the hardware database (hwdb) systemd-hwdb systemd-id128 Generates and prints id128 strings systemd-id128 systemd-inhibit Is used to execute a program with a shutdown, sleep or idle inhibitor lock taken, preventing an action such as a system shutdown until the process is completed systemd-inhibit systemd-machine-id-setup Is used by system installer tools to initialize the machine ID stored in /etc/machine-id at install time with a randomly generated ID systemd-machine-id-setup systemd-mount Is used to temporarily mount or automount disks systemd-mount systemd-notify Is used by daemon scripts to notify the init system about status changes systemd-notify systemd-nspawn Is used to run a command or OS in a light-weight namespace container systemd-nspawn systemd-path Is used to query system and user paths systemd-path systemd-repart Is used to grow and add partitions to a partition table when systemd is used in an OS image (e.g. a container) systemd-repart systemd-resolve Is used to resolve domain names, IPV4 and IPv6 addresses, DNS resource records, and services systemd-resolve systemd-run Is used to create and start a transient .service or a .scope unit and run the specified command in it. This is useful for validating systemd units systemd-run systemd-socket-activate Is used to listen on socket devices and launch a process upon a successful connection to the socket systemd-socket-activate systemd-sysext Activates system extension images systemd-sysext systemd-tmpfiles Creates, deletes and cleans up volatile and temporary files and directories, based on the configuration file format and location specified in tmpfiles.d directories systemd-tmpfiles systemd-umount Unmounts mount points systemd-umount systemd-tty-ask-password-agent Is used to list and/or process pending systemd password requests systemd-tty-ask-password-agent telinit Tells init which run-level to change to telinit timedatectl Is used to query and change the system clock and its settings timedatectl udevadm Is a generic udev administration tool which controls the udevd daemon, provides info from the Udev hardware database, monitors uevents, waits for uevents to finish, tests udev configuration, and triggers uevents for a given device udevadm libsystemd Is the main systemd utility library libsystemd libudev Is a library to access Udev device information libudev