README revision 8d3ae2bd4c9bf9fc2e57f7b3776325a1c750ca30
2N/Asystemd System and Service Manager
2N/A
2N/ADETAILS:
2N/A http://0pointer.de/blog/projects/systemd.html
2N/A
2N/AWEB SITE:
2N/A http://www.freedesktop.org/wiki/Software/systemd
2N/A
2N/AGIT:
2N/A git://anongit.freedesktop.org/systemd/systemd
2N/A ssh://git.freedesktop.org/git/systemd/systemd
2N/A
2N/AGITWEB:
2N/A http://cgit.freedesktop.org/systemd/systemd
2N/A
2N/AMAILING LIST:
2N/A http://lists.freedesktop.org/mailman/listinfo/systemd-devel
2N/A http://lists.freedesktop.org/mailman/listinfo/systemd-commits
2N/A
2N/AIRC:
1392N/A #systemd on irc.freenode.org
2N/A
2N/ABUG REPORTS:
2N/A https://bugs.freedesktop.org/enter_bug.cgi?product=systemd
2N/A
2N/AAUTHOR:
2N/A Lennart Poettering
2N/A Kay Sievers
2N/A ...and many others
2N/A
2N/ALICENSE:
59N/A LGPLv2.1+ for all code
59N/A - except src/shared/MurmurHash2.c which is Public Domain
2N/A - except src/shared/siphash24.c which is CC0 Public Domain
2N/A - except src/journal/lookup3.c which is Public Domain
2N/A - except src/udev/* which is (currently still) GPLv2, GPLv2+
2N/A
26N/AREQUIREMENTS:
26N/A Linux kernel >= 3.7
2N/A Linux kernel >= 3.8 for Smack support
26N/A
1470N/A Kernel Config Options:
38N/A CONFIG_DEVTMPFS
1470N/A CONFIG_CGROUPS (it is OK to disable all controllers)
1470N/A CONFIG_INOTIFY_USER
1470N/A CONFIG_SIGNALFD
181N/A CONFIG_TIMERFD
26N/A CONFIG_EPOLL
26N/A CONFIG_NET
26N/A CONFIG_SYSFS
26N/A CONFIG_PROC_FS
26N/A CONFIG_FHANDLE (libudev, mount and bind mount handling)
26N/A
26N/A udev will fail to work with the legacy sysfs layout:
26N/A CONFIG_SYSFS_DEPRECATED=n
700N/A
700N/A Legacy hotplug slows down the system and confuses udev:
26N/A CONFIG_UEVENT_HELPER_PATH=""
26N/A
26N/A Userspace firmware loading is not supported and should
1498N/A be disabled in the kernel:
1498N/A CONFIG_FW_LOADER_USER_HELPER=n
26N/A
1498N/A Some udev rules and virtualization detection relies on it:
151N/A CONFIG_DMIID
206N/A
26N/A Support for some SCSI devices serial number retrieval, to
26N/A create additional symlinks in /dev/disk/ and /dev/tape:
26N/A CONFIG_BLK_DEV_BSG
26N/A
26N/A Required for PrivateNetwork in service units:
26N/A CONFIG_NET_NS
26N/A
2N/A Optional but strongly recommended:
26N/A CONFIG_IPV6
26N/A CONFIG_AUTOFS4_FS
26N/A CONFIG_TMPFS_POSIX_ACL
26N/A CONFIG_TMPFS_XATTR
883N/A CONFIG_SECCOMP
26N/A
26N/A Required for CPUShares in resource control unit settings
26N/A CONFIG_CGROUP_SCHED
26N/A CONFIG_FAIR_GROUP_SCHED
1043N/A
586N/A For systemd-bootchart, several proc debug interfaces are required:
26N/A CONFIG_SCHEDSTATS
93N/A CONFIG_SCHED_DEBUG
166N/A
26N/A For UEFI systems:
379N/A CONFIG_EFIVAR_FS
379N/A CONFIG_EFI_PARTITION
1498N/A
1498N/A Note that kernel auditing is broken when used with systemd's
2N/A container code. When using systemd in conjunction with
26N/A containers, please make sure to either turn off auditing at
26N/A runtime using the kernel command line option "audit=0", or
181N/A turn it off at kernel compile time using:
181N/A CONFIG_AUDIT=n
181N/A If systemd is compiled with libseccomp support on
99N/A architectures which do not use socketcall() and where seccomp
59N/A is supported (this effectively means x86-64 and ARM, but
12N/A excludes 32-bit x86!), then nspawn will now install a
30N/A work-around seccomp filter that makes containers boot even
1256N/A with audit being enabled. This works correctly only on kernels
1256N/A 3.14 and newer though. TL;DR: turn audit off, still.
1256N/A
1256N/A glibc >= 2.14
1256N/A libcap
1256N/A libmount >= 2.20 (from util-linux)
1256N/A libseccomp >= 1.0.0 (optional)
1256N/A libblkid >= 2.20 (from util-linux) (optional)
1256N/A libkmod >= 15 (optional)
1256N/A PAM >= 1.1.2 (optional)
1256N/A libcryptsetup (optional)
1256N/A libaudit (optional)
1256N/A libacl (optional)
1256N/A libselinux (optional)
1256N/A liblzma (optional)
1256N/A liblz4 >= 119 (optional)
1256N/A libgcrypt (optional)
1256N/A libqrencode (optional)
1256N/A libmicrohttpd (optional)
1256N/A libpython (optional)
1256N/A libidn (optional)
1256N/A gobject-introspection > 1.40.0 (optional)
1256N/A elfutils >= 158 (optional)
1256N/A make, gcc, and similar tools
1413N/A
1256N/A During runtime, you need the following additional
26N/A dependencies:
26N/A
1256N/A util-linux >= v2.25 required
2N/A dbus >= 1.4.0 (strictly speaking optional, but recommended)
26N/A dracut (optional)
1256N/A PolicyKit (optional)
1256N/A
185N/A When building from git, you need the following additional
2N/A dependencies:
255N/A
145N/A docbook-xsl
7N/A xsltproc
26N/A automake
26N/A autoconf
38N/A libtool
26N/A intltool
197N/A gperf
197N/A gtkdocize (optional)
197N/A python (optional)
197N/A python-lxml (optional, but required to build the indices)
197N/A sphinx (optional)
26N/A
30N/A When systemd-hostnamed is used, it is strongly recommended to
26N/A install nss-myhostname to ensure that, in a world of
46N/A dynamically changing hostnames, the hostname stays resolvable
46N/A under all circumstances. In fact, systemd-hostnamed will warn
46N/A if nss-myhostname is not installed.
64N/A
64N/A To build HTML documentation for python-systemd using sphinx,
26N/A please first install systemd (using 'make install'), and then
46N/A invoke sphinx-build with 'make sphinx-<target>', with <target>
46N/A being 'html' or 'latexpdf'. If using DESTDIR for installation,
46N/A pass the same DESTDIR to 'make sphinx-html' invocation.
2N/A
1256N/AUSERS AND GROUPS:
1256N/A Default udev rules use the following standard system group
1256N/A names, which need to be resolvable by getgrnam() at any time,
1256N/A even in the very early boot stages, where no other databases
1256N/A and network are available:
1256N/A
1256N/A audio, cdrom, dialout, disk, input, kmem, lp, tape, tty, video
1256N/A
1256N/A During runtime, the journal daemon requires the
1256N/A "systemd-journal" system group to exist. New journal files will
1256N/A be readable by this group (but not writable), which may be used
1256N/A to grant specific users read access.
1256N/A
1256N/A It is also recommended to grant read access to all journal
1256N/A files to the system groups "wheel" and "adm" with a command
1256N/A like the following in the post installation script of the
1256N/A package:
1256N/A
1256N/A # setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/
1256N/A
1256N/A The journal gateway daemon requires the
1256N/A "systemd-journal-gateway" system user and group to
1256N/A exist. During execution this network facing service will drop
1256N/A privileges and assume this uid/gid for security reasons.
1256N/A
1256N/A Similarly, the NTP daemon requires the "systemd-timesync" system
1256N/A user and group to exist.
1256N/A
1256N/A Similarly, the network management daemon requires the
1256N/A "systemd-network" system user and group to exist.
1256N/A
1256N/A Similarly, the name resolution daemon requires the
1413N/A "systemd-resolve" system user and group to exist.
1413N/A
1413N/A Similarly, the kdbus dbus1 proxy daemon requires the
1413N/A "systemd-bus-proxy" system user and group to exist.
1413N/A
1413N/ANSS:
1413N/A systemd ships with three NSS modules:
1413N/A
1413N/A nss-myhostname resolves the local hostname to locally
1256N/A configured IP addresses, as well as "localhost" to
1256N/A 127.0.0.1/::1.
1256N/A
1256N/A nss-resolve enables DNS resolution via the systemd-resolved
1256N/A DNS/LLMNR caching stub resolver "systemd-resolved".
1256N/A
1256N/A nss-mymachines enables resolution of all local containers
1256N/A registered with machined to their respective IP addresses.
1256N/A
1256N/A To make use of these NSS modules, please add them to the
1413N/A "hosts: " line in /etc/nsswitch.conf. The "resolve" module
1256N/A should replace the glibc "dns" module in this file.
1256N/A
1256N/A The three modules should be used in the following order:
1256N/A
1256N/A hosts: files mymachines resolve myhostname
1256N/A
1256N/AWARNINGS:
1256N/A systemd will warn you during boot if /etc/mtab is not a
1256N/A symlink to /proc/mounts. Please ensure that /etc/mtab is a
1256N/A proper symlink.
1256N/A
1256N/A systemd will warn you during boot if /usr is on a different
53N/A file system than /. While in systemd itself very little will
46N/A break if /usr is on a separate partition, many of its
46N/A dependencies very likely will break sooner or later in one
26N/A form or another. For example, udev rules tend to refer to
181N/A binaries in /usr, binaries that link to libraries in /usr or
369N/A binaries that refer to data files in /usr. Since these
181N/A breakages are not always directly visible, systemd will warn
181N/A about this, since this kind of file system setup is not really
181N/A supported anymore by the basic set of Linux OS components.
181N/A
181N/A systemd requires that the /run mount point exists. systemd also
181N/A requires that /var/run is a a symlink to /run.
76N/A
99N/A For more information on this issue consult
181N/A http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
99N/A
26N/A To run systemd under valgrind, compile with VALGRIND defined
1549N/A (e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise,
1549N/A false positives will be triggered by code which violates
1549N/A some rules but is actually safe.
1555N/A
1549N/AENGINEERING AND CONSULTING SERVICES:
1549N/A ENDOCODE <https://endocode.com/> offers professional
1549N/A engineering and consulting services for systemd. Please
1549N/A contact Chris Kühl <chris@endocode.com> for more information.
1555N/A