README revision 19aadacf92ad86967ffb678e37b2ff9e83cb9480
fc80027fb54b501cdd88461bf879d078259e0226David Lawrencesystemd System and Service Manager
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence http://0pointer.de/blog/projects/systemd.html
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence http://www.freedesktop.org/wiki/Software/systemd
15a44745412679c30a6d022733925af70a38b715David Lawrence git://anongit.freedesktop.org/systemd/systemd
15a44745412679c30a6d022733925af70a38b715David Lawrence ssh://git.freedesktop.org/git/systemd/systemd
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence http://lists.freedesktop.org/mailman/listinfo/systemd-devel
15a44745412679c30a6d022733925af70a38b715David Lawrence http://lists.freedesktop.org/mailman/listinfo/systemd-commits
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence https://bugs.freedesktop.org/enter_bug.cgi?product=systemd
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence Lennart Poettering
2918b5bda6a55c301eb87992b5f2acd7176d0737David Lawrence LGPLv2.1+ for all code
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence - except sd-daemon.[ch] and sd-readahead.[ch] which are MIT
7046378cf8713c123361da9c658c5808b7fbcd61David Lawrence - except src/shared/MurmurHash3.c which is Public Domain
1a69a1a78cfaa86f3b68bbc965232b7876d4da2aDavid Lawrence - except src/journal/lookup3.c which is Public Domain
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence - except src/udev/* which is (currently still) GPLv2, GPLv2+
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence Linux kernel >= 3.0
2918b5bda6a55c301eb87992b5f2acd7176d0737David Lawrence CONFIG_DEVTMPFS
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence CONFIG_CGROUPS (it's OK to disable all controllers)
2918b5bda6a55c301eb87992b5f2acd7176d0737David Lawrence CONFIG_INOTIFY_USER
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_SIGNALFD
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence CONFIG_TIMERFD
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence Linux kernel >= 3.8 for Smack support
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence Udev will fail to work with the legacy layout:
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_SYSFS_DEPRECATED=n
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence Legacy hotplug slows down the system and confuses udev:
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_UEVENT_HELPER_PATH=""
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence Userspace firmware loading is deprecated, will go away, and
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence sometimes causes problems:
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence CONFIG_FW_LOADER_USER_HELPER=n
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence Some udev rules and virtualization detection relies on it:
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence Mount and bind mount handling might require it:
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence CONFIG_FHANDLE
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence Support for some SCSI devices serial number retrieval, to
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence create additional symlinks in /dev/disk/ and /dev/tape:
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_BLK_DEV_BSG
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence Optional but strongly recommended:
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_AUTOFS4_FS
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_TMPFS_POSIX_ACL
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_TMPFS_XATTR
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence CONFIG_SECCOMP
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence For systemd-bootchart, a kernel with procfs support and
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence several proc output options enabled is required:
87cafc5e70f79f2586d067fbdd64f61bbab069d2David Lawrence CONFIG_PROC_FS
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence CONFIG_SCHEDSTATS
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence CONFIG_SCHED_DEBUG
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence For UEFI systems:
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence CONFIG_EFI_VARS
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence CONFIG_EFI_PARTITION
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence Note that kernel auditing is broken when used with systemd's
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence container code. When using systemd in conjunction with
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence containers, please make sure to either turn off auditing at
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence runtime using the kernel command line option "audit=0", or
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence turn it off at kernel compile time using:
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence CONFIG_AUDIT=n
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence dbus >= 1.4.0
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence libblkid >= 2.20 (from util-linux) (optional)
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence libkmod >= 15 (optional)
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence PAM >= 1.1.2 (optional)
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence libcryptsetup (optional)
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence libaudit (optional)
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence libacl (optional)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence libattr (optional)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence libselinux (optional)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence liblzma (optional)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence tcpwrappers (optional)
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence libgcrypt (optional)
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence libqrencode (optional)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence libmicrohttpd (optional)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence libpython (optional)
e6a6c0a5d6393d3a7f75b486f16e4ef15c4857bbDavid Lawrence make, gcc, and similar tools
e6a6c0a5d6393d3a7f75b486f16e4ef15c4857bbDavid Lawrence During runtime, you need the following additional
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence dependencies:
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence util-linux >= v2.19 (requires fsck -l, agetty -s)
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence sulogin (from util-linux >= 2.22 or sysvinit-tools, optional but recommended)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence dracut (optional)
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence PolicyKit (optional)
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence When building from git, you need the following additional
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence dependencies:
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence gtkdocize (optional)
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence python (optional)
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence sphinx (optional)
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence python-lxml (entirely optional)
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence When systemd-hostnamed is used, it is strongly recommended to
ff30a206ecc63b6681716322ed7f017e3f51ea7fDavid Lawrence install nss-myhostname to ensure that, in a world of
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence dynamically changing hostnames, the hostname stays resolvable
ff30a206ecc63b6681716322ed7f017e3f51ea7fDavid Lawrence under all circumstances. In fact, systemd-hostnamed will warn
229f8a97f7887774963cfbd07d392c4373363af5David Lawrence if nss-myhostname is not installed.
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence Note that D-Bus can link against libsystemd-login.so, which
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence results in a cyclic build dependency. To accommodate for
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence this, please build D-Bus without systemd first, then build
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence systemd, then rebuild D-Bus with systemd support.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence To build HTML documentation for python-systemd using sphinx,
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence please first install systemd (using 'make install'), and then
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence invoke sphinx-build with 'make sphinx-<target>', with <target>
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence being 'html' or 'latexpdf'. If using DESTDIR for installation,
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence pass the same DESTDIR to 'make sphinx-html' invocation.
1a487fb7d230403bf1b5d6628542134f52c80653Michael GraffUSERS AND GROUPS:
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff Default udev rules use the following standard system group
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff names, which need to be resolvable by getgrnam() at any time,
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff even in the very early boot stages, where no other databases
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff and network are available:
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence tty, dialout, kmem, video, audio, lp, floppy, cdrom, tape, disk
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence During runtime, the journal daemon requires the
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence "systemd-journal" system group to exist. New journal files will
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence be readable by this group (but not writable), which may be used
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence to grant specific users read access.
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff It is also recommended to grant read access to all journal
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff files to the system groups "wheel" and "adm" with a command
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff like the following in the post installation script of the
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff # setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence The journal gateway daemon requires the
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence "systemd-journal-gateway" system user and group to
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence exist. During execution this network facing service will drop
edcd1247ad7e81bb8b430e610d9718f64c70f05dDavid Lawrence privileges and assume this uid/gid for security reasons.
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence systemd will warn you during boot if /etc/mtab is not a
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence symlink to /proc/mounts. Please ensure that /etc/mtab is a
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence proper symlink.
d409ceeda41a256e8114423674d844d5f5035ee8Bob Halley systemd will warn you during boot if /usr is on a different
5fe5a0c02634eaadfcbc3528bf2c184557110a3bAndreas Gustafsson file system than /. While in systemd itself very little will
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence break if /usr is on a separate partition, many of its
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence dependencies very likely will break sooner or later in one
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence form or another. For example, udev rules tend to refer to
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff binaries in /usr, binaries that link to libraries in /usr or
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff binaries that refer to data files in /usr. Since these
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff breakages are not always directly visible, systemd will warn
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff about this, since this kind of file system setup is not really
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff supported anymore by the basic set of Linux OS components.
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff For more information on this issue consult
1a487fb7d230403bf1b5d6628542134f52c80653Michael Graff http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
2d3a9eee3f60582312b7f6304305932f3ce9ae5cMichael Graff To run systemd under valgrind, compile with VALGRIND defined
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence (e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise,
a40cc3249f7836d9c903228e6bd1454eee44c647David Lawrence false positives will be triggered by code which violates
fc80027fb54b501cdd88461bf879d078259e0226David Lawrence some rules but is actually safe.