README revision 41938693e76c32161d2b3b83253ce996468cbf9b
d657c51f14601d0235434ffb78cf6ac0f27cc83cLennart Poetteringsystemd System and Service Manager
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://0pointer.de/blog/projects/systemd.html
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://www.freedesktop.org/wiki/Software/systemd
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://lists.freedesktop.org/mailman/listinfo/systemd-devel
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering http://lists.freedesktop.org/mailman/listinfo/systemd-commits
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering https://bugs.freedesktop.org/enter_bug.cgi?product=systemd
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering Lennart Poettering
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering LGPLv2.1+ for all code
b67f541f130cd4c55da0b74af5fcbb4daeca1937Lennart Poettering - except sd-daemon.[ch] and sd-readahead.[ch] which are MIT
b67f541f130cd4c55da0b74af5fcbb4daeca1937Lennart Poettering - except src/udev/ which is GPLv2.0+
85424725d1870e2c218e3e2d53971f7e5dc3f0aeKay SieversREQUIREMENTS:
673eab9bf0d2d79a72f3d7c430807b8786de7ee3Lennart Poettering Linux kernel >= 2.6.39
31cee6f634ce07aa2c3514a506f93830f91f14a5Lennart Poettering CONFIG_DEVTMPFS
be2ea723b1d023b3d385d3b791ee4607cbfb20caKay Sievers CONFIG_CGROUPS (it's OK to disable all controllers)
23aedd029452b65c11b6eb838e44f60be1c66814Kay Sievers CONFIG_INOTIFY_USER
23aedd029452b65c11b6eb838e44f60be1c66814Kay Sievers CONFIG_SIGNALFD
23aedd029452b65c11b6eb838e44f60be1c66814Kay Sievers CONFIG_TIMERFD
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_EPOLL
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_SYSFS
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Udev will fail to work with the legacy layout:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_SYSFS_DEPRECATED*=n
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Legacy hotplug slows down the system and confuses udev:
06d461ee6f3da6650e6d023d7828455752d70b0bShawn Landden CONFIG_UEVENT_HELPER_PATH=""
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Userspace firmware loading is deprecated, will go away, and
be2ea723b1d023b3d385d3b791ee4607cbfb20caKay Sievers sometimes causes problems:
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers CONFIG_FW_LOADER_USER_HELPER=n
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Some udev rules and virtualization detection relies on it:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_DMIID
be2ea723b1d023b3d385d3b791ee4607cbfb20caKay Sievers Mount and bind mount handling might require it:
be2ea723b1d023b3d385d3b791ee4607cbfb20caKay Sievers CONFIG_FHANDLE
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers Optional but strongly recommended:
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_AUTOFS4_FS
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers CONFIG_TMPFS_POSIX_ACL
a5c724b25b2930ecb4a64bb4d9b8619a1354afedKay Sievers CONFIG_TMPFS_XATTR
a5c724b25b2930ecb4a64bb4d9b8619a1354afedKay Sievers For systemd-bootchart a kernel with procfs support and several
a5c724b25b2930ecb4a64bb4d9b8619a1354afedKay Sievers proc output options enabled is required:
13468826f2457cae45a79649e122deadb9dc9774Mike Gilbert CONFIG_PROC_FS
13468826f2457cae45a79649e122deadb9dc9774Mike Gilbert CONFIG_SCHEDSTATS
13468826f2457cae45a79649e122deadb9dc9774Mike Gilbert CONFIG_SCHED_DEBUG
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers dbus >= 1.4.0
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers libblkid >= 2.20 (from util-linux) (optional)
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers libkmod >= 5 (optional)
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers PAM >= 1.1.2 (optional)
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers libcryptsetup (optional)
a21b4670d404ca4e55fef921f94a4259075882a9Umut Tezduyar Lindskog libaudit (optional)
a21b4670d404ca4e55fef921f94a4259075882a9Umut Tezduyar Lindskog libacl (optional)
a21b4670d404ca4e55fef921f94a4259075882a9Umut Tezduyar Lindskog libattr (optional)
a21b4670d404ca4e55fef921f94a4259075882a9Umut Tezduyar Lindskog libselinux (optional)
0acd5a08f5b2ff0580d4fc4d7fc2ff144b2f788fWaLyong Cho liblzma (optional)
0acd5a08f5b2ff0580d4fc4d7fc2ff144b2f788fWaLyong Cho tcpwrappers (optional)
0acd5a08f5b2ff0580d4fc4d7fc2ff144b2f788fWaLyong Cho libgcrypt (optional)
06d461ee6f3da6650e6d023d7828455752d70b0bShawn Landden libqrencode (optional)
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers libmicrohttpd (optional)
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers libpython (optional)
713bc0cfa477ca1df8769041cb3dbc83c10eace2Kay Sievers make, gcc, and similar tools
f33016ff8b56c45dc85485ecf4d59f435c42ca40Thomas Bächler During runtime you need the following additional dependencies:
f28cbd0382ca53baa99803bbc907a469fbf68128Kay Sievers util-linux >= v2.19 (requires fsck -l, agetty -s)
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering sulogin (from util-linux >= 2.22 or sysvinit-tools, optional but recommended)
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering dracut (optional)
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt PolicyKit (optional)
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering When building from git you need the following additional dependencies:
77b6e19458f37cfde127ec6aa9494c0ac45ad890Lennart Poettering gtkdocize (optional)
ff70c61b6fce5547fe22992e561941eff8456c9bKay Sievers python (optional)
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering sphinx (optional)
c0467cf387548dc98c0254f63553d862b35a84e5Ronny Chevalier When systemd-hostnamed is used it is strongly recommended to
d47f6ca5f9b7a0b400d8bdb050151a0284fb4bdbGabriel de Perthuis install nss-myhostname to ensure that in a world of
a18535d9e138c525d0443ec9f30a90b3e2184686Tom Gundersen dynamically changing hostnames the hostname stays resolvable
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering under all circumstances. In fact, systemd-hostnamed will warn
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering if nss-myhostname is not installed.
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek Note that D-Bus can link against libsystemd-login.so, which
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering results in a cyclic build dependency. To accommodate for this
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek please build D-Bus without systemd first, then build systemd,
a509e0e6946aee5c3dd51bc3a6f40d0a623c9e2cZbigniew Jędrzejewski-Szmek then rebuild D-Bus with systemd support.
7b17a7d72f5ba5ad838b19803534c56a46f3bce9Lennart Poettering To build HTML documentation for python-systemd using sphinx,
7b17a7d72f5ba5ad838b19803534c56a46f3bce9Lennart Poettering please first install systemd (using 'make install'), and then
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek invoke sphinx-build with 'make sphinx-<target>', with <target>
f9ffbca2fb1ba7a7854d83439a4644590be0d9e1Lennart Poettering being 'html' or 'latexpdf'. If using DESTDIR for installation,
a900b827d4d67f4961d2e4ed48d73e6bc1d6b4b6Zbigniew Jędrzejewski-Szmek pass the same DESTDIR to 'make sphinx-html' invocation.
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-SzmekUSERS AND GROUPS:
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek Default udev rules use the following standard system group
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt names, which need to be resolvable by getgrnam() at any time,
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt even in the very early boot stages, where no other databases
2cc86f094a8c316f7feb0336df3827a3264b116dZbigniew Jędrzejewski-Szmek and network are available:
df41776d66b5b7467a5cf9c719b97b66d6534c8cTom Gundersen tty, dialout, kmem, video, audio, lp, floppy, cdrom, tape, disk
46ba8aae2b82bc5c87ba347e6bf914ecd5e9d51eLennart Poettering During runtime the journal daemon requires the
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering "systemd-journal" system group to exist. New journal files will
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt be readable by this group (but not writable) which may be used
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt to grant specific users read access.
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering It is also recommended to grant read access to all journal
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering files to the system groups "wheel" and "adm" with a command
3ede835a0486f2ecc025dede0b33e9a1edc06d30Lennart Poettering like the following in the post installation script of the
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek # setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek The journal gateway daemon requires the
19d5d4cb6a89c844e298eb65bce6ba0fa9d58b91Zbigniew Jędrzejewski-Szmek "systemd-journal-gateway" system user and group to
32dcef3ab1eb91ee469c3246ef859578dccd8a45Zbigniew Jędrzejewski-Szmek exist. During execution this network facing service will drop
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek privileges and assume this uid/gid for security reasons.
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt systemd will warn you during boot if /etc/mtab is not a
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt symlink to /proc/mounts. Please ensure that /etc/mtab is a
fff2e5b58bab7a5ffbb7593742d462197b06728cLennart Poettering proper symlink.
fff2e5b58bab7a5ffbb7593742d462197b06728cLennart Poettering systemd will warn you during boot if /usr is on a different
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek file system than /. While in systemd itself very little will
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek break if /usr is on a separate partition many of its
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek dependencies very likely will break sooner or later in one
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek form or another. For example udev rules tend to refer to
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek binaries in /usr, binaries that link to libraries in /usr or
9015fa646e04fc3cb180bea24c33d34edbb48ed7Zbigniew Jędrzejewski-Szmek binaries that refer to data files in /usr. Since these
a24c64f03f9c5c0304451d8542fee853187a5168Lennart Poettering breakages are not always directly visible systemd will warn
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering about this, since this kind of file system setup is not really
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering supported anymore by the basic set of Linux OS components.
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering For more information on this issue consult
37495eede95d3212b797c8459d7ed6258fb23c6aLennart Poettering http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
37c0e8f35e92190a22b2ac0fbb23bf396121e84aKay Sievers To run systemd under valgrind, compile with VALGRIND defined
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt (e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise,
1a9ce3f766a03c7daab4ca7edae7533841e1721aMichael Biebl false positives will be triggered by code which violates
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardt some rules but is actually safe.