README revision 47bc23c18cbc87471dc832534c8565625e4a9d16
d657c51f14601d0235434ffb78cf6ac0f27cc83cLennart Poetteringsystemd System and Service Manager
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringDETAILS:
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://0pointer.de/blog/projects/systemd.html
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringWEB SITE:
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://www.freedesktop.org/wiki/Software/systemd
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringGIT:
9fa2f41077b2d76685058836f602f38715b5eef3Kay Sievers git://anongit.freedesktop.org/systemd/systemd
9fa2f41077b2d76685058836f602f38715b5eef3Kay Sievers ssh://git.freedesktop.org/git/systemd/systemd
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringGITWEB:
9fa2f41077b2d76685058836f602f38715b5eef3Kay Sievers http://cgit.freedesktop.org/systemd/systemd
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringMAILING LIST:
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://lists.freedesktop.org/mailman/listinfo/systemd-devel
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://lists.freedesktop.org/mailman/listinfo/systemd-commits
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringIRC:
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering #systemd on irc.freenode.org
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringBUG REPORTS:
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering https://bugs.freedesktop.org/enter_bug.cgi?product=systemd
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringAUTHOR:
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering Lennart Poettering
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering Kay Sievers
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering ...and many others
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering
673eab9bf0d2d79a72f3d7c430807b8786de7ee3Lennart PoetteringLICENSE:
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering LGPLv2.1+ for all code
952d1536f4d7b64cfe938a569402434decffe4cdKay Sievers - except sd-readahead.[ch] which is MIT
b67f541f130cd4c55da0b74af5fcbb4daeca1937Lennart Poettering - except src/shared/MurmurHash2.c which is Public Domain
b67f541f130cd4c55da0b74af5fcbb4daeca1937Lennart Poettering - except src/shared/siphash24.c which is CC0 Public Domain
85424725d1870e2c218e3e2d53971f7e5dc3f0aeKay Sievers - except src/journal/lookup3.c which is Public Domain
85424725d1870e2c218e3e2d53971f7e5dc3f0aeKay Sievers - except src/udev/* which is (currently still) GPLv2, GPLv2+
673eab9bf0d2d79a72f3d7c430807b8786de7ee3Lennart Poettering
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart PoetteringREQUIREMENTS:
e946948eff517e895b287d0fd8c6d069ab9bbbb9Jesper Larsen Linux kernel >= 3.0
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_DEVTMPFS
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_CGROUPS (it's OK to disable all controllers)
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_INOTIFY_USER
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_SIGNALFD
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_TIMERFD
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_EPOLL
41938693e76c32161d2b3b83253ce996468cbf9bKay Sievers CONFIG_NET
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_SYSFS
06d461ee6f3da6650e6d023d7828455752d70b0bShawn Landden CONFIG_PROC_FS
5d31974e44b8fa163f859d8467a3667ed52056d0Kay Sievers CONFIG_FHANDLE (libudev, mount and bind mount handling)
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers
ffbd2c4d45787ba5ba85a32db6551efba66a1ee6Nathaniel Chen Linux kernel >= 3.8 for Smack support
ffbd2c4d45787ba5ba85a32db6551efba66a1ee6Nathaniel Chen
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Udev will fail to work with the legacy layout:
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers CONFIG_SYSFS_DEPRECATED=n
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Legacy hotplug slows down the system and confuses udev:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_UEVENT_HELPER_PATH=""
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Userspace firmware loading is deprecated, will go away, and
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers sometimes causes problems:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_FW_LOADER_USER_HELPER=n
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Some udev rules and virtualization detection relies on it:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_DMIID
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers
a5c724b25b2930ecb4a64bb4d9b8619a1354afedKay Sievers Support for some SCSI devices serial number retrieval, to
a5c724b25b2930ecb4a64bb4d9b8619a1354afedKay Sievers create additional symlinks in /dev/disk/ and /dev/tape:
a5c724b25b2930ecb4a64bb4d9b8619a1354afedKay Sievers CONFIG_BLK_DEV_BSG
a5c724b25b2930ecb4a64bb4d9b8619a1354afedKay Sievers
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Optional but strongly recommended:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_IPV6
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_AUTOFS4_FS
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_TMPFS_POSIX_ACL
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_TMPFS_XATTR
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers CONFIG_SECCOMP
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers
06d461ee6f3da6650e6d023d7828455752d70b0bShawn Landden For systemd-bootchart, several proc debug interfaces are required:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_SCHEDSTATS
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_SCHED_DEBUG
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers For UEFI systems:
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers CONFIG_EFI_VARS
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers CONFIG_EFI_PARTITION
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering Note that kernel auditing is broken when used with systemd's
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering container code. When using systemd in conjunction with
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt containers, please make sure to either turn off auditing at
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering runtime using the kernel command line option "audit=0", or
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering turn it off at kernel compile time using:
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering CONFIG_AUDIT=n
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering
ff70c61b6fce5547fe22992e561941eff8456c9bKay Sievers glibc >= 2.14
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering libcap
c0467cf387548dc98c0254f63553d862b35a84e5Ronny Chevalier libseccomp >= 1.0.0 (optional)
e30431623a7d871da123cc37055ac49abf2c20eaTom Gundersen libblkid >= 2.20 (from util-linux) (optional)
a18535d9e138c525d0443ec9f30a90b3e2184686Tom Gundersen libkmod >= 15 (optional)
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering PAM >= 1.1.2 (optional)
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering libcryptsetup (optional)
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering libaudit (optional)
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek libacl (optional)
fb0951b02ebf51a93acf12721d8857d31ce57ba3Lennart Poettering libattr (optional)
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering libselinux (optional)
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek liblzma (optional)
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering tcpwrappers (optional)
7b17a7d72f5ba5ad838b19803534c56a46f3bce9Lennart Poettering libgcrypt (optional)
7b17a7d72f5ba5ad838b19803534c56a46f3bce9Lennart Poettering libqrencode (optional)
7b17a7d72f5ba5ad838b19803534c56a46f3bce9Lennart Poettering libmicrohttpd (optional)
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek libpython (optional)
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek make, gcc, and similar tools
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek
39c4ead2323b45bbe9866e0f97fd8dcfb8a0bedeZbigniew Jędrzejewski-Szmek To sucessfully use --compat-libs, gcc >= 4.8 seems necessary.
39c4ead2323b45bbe9866e0f97fd8dcfb8a0bedeZbigniew Jędrzejewski-Szmek
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt During runtime, you need the following additional
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt dependencies:
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek
8be12848423218c034cfa7e3078774c9d4732281Zbigniew Jędrzejewski-Szmek util-linux >= v2.19 (requires fsck -l, agetty -s),
8be12848423218c034cfa7e3078774c9d4732281Zbigniew Jędrzejewski-Szmek v2.21 required for tests in test/
df41776d66b5b7467a5cf9c719b97b66d6534c8cTom Gundersen dbus >= 1.4.0 (strictly speaking optional, but recommended)
8be12848423218c034cfa7e3078774c9d4732281Zbigniew Jędrzejewski-Szmek sulogin (from util-linux >= 2.22 or sysvinit-tools, optional but recommended,
8be12848423218c034cfa7e3078774c9d4732281Zbigniew Jędrzejewski-Szmek required for tests in test/)
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek dracut (optional)
46ba8aae2b82bc5c87ba347e6bf914ecd5e9d51eLennart Poettering PolicyKit (optional)
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt When building from git, you need the following additional
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt dependencies:
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering docbook-xsl
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering xsltproc
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering automake
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering autoconf
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering libtool
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek intltool
b62cfcea00862ccbf0e5e297f8a339f70987edefMichael Biebl gperf
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek gtkdocize (optional)
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek python (optional)
32dcef3ab1eb91ee469c3246ef859578dccd8a45Zbigniew Jędrzejewski-Szmek python-lxml (optional, but required to build the indices)
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek sphinx (optional)
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt When systemd-hostnamed is used, it is strongly recommended to
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt install nss-myhostname to ensure that, in a world of
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt dynamically changing hostnames, the hostname stays resolvable
fff2e5b58bab7a5ffbb7593742d462197b06728cLennart Poettering under all circumstances. In fact, systemd-hostnamed will warn
bf9e477c92506884977d6c8d761969e105528f3eKay Sievers if nss-myhostname is not installed.
fff2e5b58bab7a5ffbb7593742d462197b06728cLennart Poettering
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek To build HTML documentation for python-systemd using sphinx,
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek please first install systemd (using 'make install'), and then
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek invoke sphinx-build with 'make sphinx-<target>', with <target>
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek being 'html' or 'latexpdf'. If using DESTDIR for installation,
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek pass the same DESTDIR to 'make sphinx-html' invocation.
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek
a24c64f03f9c5c0304451d8542fee853187a5168Lennart PoetteringUSERS AND GROUPS:
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering Default udev rules use the following standard system group
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering names, which need to be resolvable by getgrnam() at any time,
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering even in the very early boot stages, where no other databases
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering and network are available:
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering tty, dialout, kmem, video, audio, lp, floppy, cdrom, tape, disk
37c0e8f35e92190a22b2ac0fbb23bf396121e84aKay Sievers
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt During runtime, the journal daemon requires the
1a9ce3f766a03c7daab4ca7edae7533841e1721aMichael Biebl "systemd-journal" system group to exist. New journal files will
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt be readable by this group (but not writable), which may be used
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering to grant specific users read access.
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering It is also recommended to grant read access to all journal
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering files to the system groups "wheel" and "adm" with a command
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering like the following in the post installation script of the
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering package:
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering # setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering The journal gateway daemon requires the
1a9ce3f766a03c7daab4ca7edae7533841e1721aMichael Biebl "systemd-journal-gateway" system user and group to
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering exist. During execution this network facing service will drop
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering privileges and assume this uid/gid for security reasons.
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart PoetteringWARNINGS:
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering systemd will warn you during boot if /etc/mtab is not a
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering symlink to /proc/mounts. Please ensure that /etc/mtab is a
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering proper symlink.
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering systemd will warn you during boot if /usr is on a different
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering file system than /. While in systemd itself very little will
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt break if /usr is on a separate partition, many of its
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering dependencies very likely will break sooner or later in one
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt form or another. For example, udev rules tend to refer to
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering binaries in /usr, binaries that link to libraries in /usr or
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering binaries that refer to data files in /usr. Since these
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt breakages are not always directly visible, systemd will warn
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering about this, since this kind of file system setup is not really
21bc923aa35d455cdef1607eb7022608c705c9f3Lennart Poettering supported anymore by the basic set of Linux OS components.
fc7a744cc44cdb80bf9bc6304fc3f80ca2cb65f9Lennart Poettering
47bc23c18cbc87471dc832534c8565625e4a9d16Lennart Poettering systemd requires that the /run mount point exists. systemd also
47bc23c18cbc87471dc832534c8565625e4a9d16Lennart Poettering requires that /var/run is a a symlink → /run.
47bc23c18cbc87471dc832534c8565625e4a9d16Lennart Poettering
aa1671320df5bd8aa4108c0efb34a49fdedd0e5fLennart Poettering For more information on this issue consult
aa1671320df5bd8aa4108c0efb34a49fdedd0e5fLennart Poettering http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
aa1671320df5bd8aa4108c0efb34a49fdedd0e5fLennart Poettering
1b4bb4fdac4dce4e658aa3743153d77c04d1a331Zbigniew Jędrzejewski-Szmek To run systemd under valgrind, compile with VALGRIND defined
1b4bb4fdac4dce4e658aa3743153d77c04d1a331Zbigniew Jędrzejewski-Szmek (e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise,
1b4bb4fdac4dce4e658aa3743153d77c04d1a331Zbigniew Jędrzejewski-Szmek false positives will be triggered by code which violates
1b4bb4fdac4dce4e658aa3743153d77c04d1a331Zbigniew Jędrzejewski-Szmek some rules but is actually safe.