Lennart Poettering | d657c51 | 2012-01-25 02:20:38 +0100 | [diff] [blame] | 1 | systemd System and Service Manager |
Lennart Poettering | 31cee6f | 2010-05-13 03:30:21 +0200 | [diff] [blame] | 2 | |
| 3 | DETAILS: |
| 4 | http://0pointer.de/blog/projects/systemd.html |
| 5 | |
| 6 | WEB SITE: |
| 7 | http://www.freedesktop.org/wiki/Software/systemd |
| 8 | |
| 9 | GIT: |
Kay Sievers | 9fa2f41 | 2012-01-22 18:40:13 +0100 | [diff] [blame] | 10 | git://anongit.freedesktop.org/systemd/systemd |
| 11 | ssh://git.freedesktop.org/git/systemd/systemd |
Lennart Poettering | 31cee6f | 2010-05-13 03:30:21 +0200 | [diff] [blame] | 12 | |
| 13 | GITWEB: |
Kay Sievers | 9fa2f41 | 2012-01-22 18:40:13 +0100 | [diff] [blame] | 14 | http://cgit.freedesktop.org/systemd/systemd |
Lennart Poettering | 31cee6f | 2010-05-13 03:30:21 +0200 | [diff] [blame] | 15 | |
| 16 | MAILING LIST: |
| 17 | http://lists.freedesktop.org/mailman/listinfo/systemd-devel |
| 18 | http://lists.freedesktop.org/mailman/listinfo/systemd-commits |
| 19 | |
| 20 | IRC: |
| 21 | #systemd on irc.freenode.org |
| 22 | |
| 23 | BUG REPORTS: |
| 24 | https://bugs.freedesktop.org/enter_bug.cgi?product=systemd |
| 25 | |
| 26 | AUTHOR: |
Lennart Poettering | 5430f7f | 2012-04-12 00:20:58 +0200 | [diff] [blame] | 27 | Lennart Poettering |
| 28 | Kay Sievers |
| 29 | ...and many others |
Lennart Poettering | 31cee6f | 2010-05-13 03:30:21 +0200 | [diff] [blame] | 30 | |
Lennart Poettering | 673eab9 | 2011-07-14 23:53:53 +0200 | [diff] [blame] | 31 | LICENSE: |
Lennart Poettering | 5430f7f | 2012-04-12 00:20:58 +0200 | [diff] [blame] | 32 | LGPLv2.1+ for all code |
| 33 | - except sd-daemon.[ch] and sd-readahead.[ch] which are MIT |
Kay Sievers | 7c09aaf | 2012-04-14 19:25:28 +0200 | [diff] [blame] | 34 | - except src/udev/ which is GPLv2.0+ |
Lennart Poettering | 673eab9 | 2011-07-14 23:53:53 +0200 | [diff] [blame] | 35 | |
Lennart Poettering | 31cee6f | 2010-05-13 03:30:21 +0200 | [diff] [blame] | 36 | REQUIREMENTS: |
Lennart Poettering | b7f44df | 2011-11-01 13:52:28 +0100 | [diff] [blame] | 37 | Linux kernel >= 2.6.39 |
Kay Sievers | 713bc0c | 2013-03-06 19:36:39 +0100 | [diff] [blame^] | 38 | CONFIG_DEVTMPFS |
| 39 | CONFIG_CGROUPS (it's OK to disable all controllers) |
| 40 | CONFIG_INOTIFY_USER |
| 41 | CONFIG_SIGNALFD |
| 42 | CONFIG_TIMERFD |
| 43 | CONFIG_EPOLL |
| 44 | CONFIG_HOTPLUG |
| 45 | CONFIG_SYSFS |
| 46 | |
| 47 | Udev will fail to work with the legacy layout: |
| 48 | CONFIG_SYSFS_DEPRECATED*=n |
| 49 | |
| 50 | Legacy hotplug slows down the system and confuses udev: |
| 51 | CONFIG_UEVENT_HELPER_PATH="" |
| 52 | |
| 53 | Userspace firmware loading is deprecated, will go away, and |
| 54 | sometimes causes problems: |
| 55 | CONFIG_FW_LOADER_USER_HELPER=n |
| 56 | |
| 57 | Some udev rules and virtualization detection relies on it: |
| 58 | CONFIG_DMIID |
| 59 | |
| 60 | Mount and bind mount handling might require it: |
| 61 | CONFIG_FHANDLE |
| 62 | |
| 63 | Optional but strongly recommended: |
| 64 | CONFIG_IPV6 |
| 65 | CONFIG_AUTOFS4_FS |
| 66 | CONFIG_TMPFS_POSIX_ACL |
| 67 | CONFIG_TMPFS_XATTR |
| 68 | |
| 69 | For systemd-bootchart a kernel with procfs support and several |
| 70 | proc output options enabled is required: |
| 71 | CONFIG_PROC_FS |
| 72 | CONFIG_SCHEDSTATS |
| 73 | CONFIG_SCHED_DEBUG |
| 74 | |
Kay Sievers | c1c8ca8 | 2010-11-26 20:48:29 +0100 | [diff] [blame] | 75 | dbus >= 1.4.0 |
Lennart Poettering | 3ede835 | 2011-02-16 19:09:11 +0100 | [diff] [blame] | 76 | libcap |
Tom Gundersen | e304316 | 2012-11-20 01:24:32 +0100 | [diff] [blame] | 77 | libblkid >= 2.20 (from util-linux) (optional) |
| 78 | libkmod >= 5 (optional) |
Lennart Poettering | 3ede835 | 2011-02-16 19:09:11 +0100 | [diff] [blame] | 79 | PAM >= 1.1.2 (optional) |
| 80 | libcryptsetup (optional) |
| 81 | libaudit (optional) |
Zbigniew Jędrzejewski-Szmek | 19d5d4c | 2011-07-12 13:57:48 +0200 | [diff] [blame] | 82 | libacl (optional) |
Lennart Poettering | fb0951b | 2012-10-16 22:58:07 +0200 | [diff] [blame] | 83 | libattr (optional) |
Lennart Poettering | 3ede835 | 2011-02-16 19:09:11 +0100 | [diff] [blame] | 84 | libselinux (optional) |
Zbigniew Jędrzejewski-Szmek | 19d5d4c | 2011-07-12 13:57:48 +0200 | [diff] [blame] | 85 | liblzma (optional) |
Lennart Poettering | 3ede835 | 2011-02-16 19:09:11 +0100 | [diff] [blame] | 86 | tcpwrappers (optional) |
Lennart Poettering | 7b17a7d | 2012-09-28 00:46:32 +0200 | [diff] [blame] | 87 | libgcrypt (optional) |
| 88 | libqrencode (optional) |
| 89 | libmicrohttpd (optional) |
Zbigniew Jędrzejewski-Szmek | 2cc86f0 | 2012-11-22 15:30:50 +0100 | [diff] [blame] | 90 | libpython (optional) |
| 91 | make, gcc, and similar tools |
Lennart Poettering | 3ede835 | 2011-02-16 19:09:11 +0100 | [diff] [blame] | 92 | |
Zbigniew Jędrzejewski-Szmek | 2cc86f0 | 2012-11-22 15:30:50 +0100 | [diff] [blame] | 93 | During runtime you need the following additional dependencies: |
| 94 | |
Tom Gundersen | c3d2d86 | 2012-11-25 21:59:00 +0100 | [diff] [blame] | 95 | util-linux >= v2.19 (requires fsck -l, agetty -s) |
| 96 | sulogin (from util-linux >= 2.22 or sysvinit-tools, optional but recommended) |
Zbigniew Jędrzejewski-Szmek | 2cc86f0 | 2012-11-22 15:30:50 +0100 | [diff] [blame] | 97 | dracut (optional) |
Lennart Poettering | 46ba8aa | 2013-02-13 22:56:43 +0100 | [diff] [blame] | 98 | PolicyKit (optional) |
Zbigniew Jędrzejewski-Szmek | 2cc86f0 | 2012-11-22 15:30:50 +0100 | [diff] [blame] | 99 | |
| 100 | When building from git you need the following additional dependencies: |
Lennart Poettering | 3ede835 | 2011-02-16 19:09:11 +0100 | [diff] [blame] | 101 | |
Lennart Poettering | 3ede835 | 2011-02-16 19:09:11 +0100 | [diff] [blame] | 102 | docbook-xsl |
| 103 | xsltproc |
| 104 | automake |
| 105 | autoconf |
| 106 | libtool |
Zbigniew Jędrzejewski-Szmek | 19d5d4c | 2011-07-12 13:57:48 +0200 | [diff] [blame] | 107 | intltool |
Michael Biebl | b62cfce | 2011-08-03 17:09:55 +0200 | [diff] [blame] | 108 | gperf |
Zbigniew Jędrzejewski-Szmek | 19d5d4c | 2011-07-12 13:57:48 +0200 | [diff] [blame] | 109 | gtkdocize (optional) |
| 110 | python (optional) |
Zbigniew Jędrzejewski-Szmek | 9015fa6 | 2013-02-09 15:37:35 -0500 | [diff] [blame] | 111 | sphinx (optional) |
Lennart Poettering | 21bc923 | 2011-02-23 01:12:07 +0100 | [diff] [blame] | 112 | |
Lennart Poettering | fff2e5b | 2011-05-17 19:35:56 +0200 | [diff] [blame] | 113 | When systemd-hostnamed is used it is strongly recommended to |
| 114 | install nss-myhostname to ensure that in a world of |
Thomas Hindoe Paaboel Andersen | edca2e2 | 2012-11-05 21:13:28 +0100 | [diff] [blame] | 115 | dynamically changing hostnames the hostname stays resolvable |
Lennart Poettering | fff2e5b | 2011-05-17 19:35:56 +0200 | [diff] [blame] | 116 | under all circumstances. In fact, systemd-hostnamed will warn |
Kay Sievers | bf9e477 | 2013-01-24 10:31:34 +0100 | [diff] [blame] | 117 | if nss-myhostname is not installed. |
Lennart Poettering | fff2e5b | 2011-05-17 19:35:56 +0200 | [diff] [blame] | 118 | |
Lennart Poettering | 6705c2d | 2011-08-24 23:29:28 +0200 | [diff] [blame] | 119 | Note that D-Bus can link against libsystemd-login.so, which |
Ville Skyttä | 49f43d5 | 2012-07-15 11:41:40 +0300 | [diff] [blame] | 120 | results in a cyclic build dependency. To accommodate for this |
Lennart Poettering | 6705c2d | 2011-08-24 23:29:28 +0200 | [diff] [blame] | 121 | please build D-Bus without systemd first, then build systemd, |
| 122 | then rebuild D-Bus with systemd support. |
| 123 | |
Zbigniew Jędrzejewski-Szmek | 9015fa6 | 2013-02-09 15:37:35 -0500 | [diff] [blame] | 124 | To build HTML documentation for python-systemd using sphinx, |
| 125 | please first install systemd (using 'make install'), and then |
| 126 | invoke sphinx-build with 'make sphinx-<target>', with <target> |
| 127 | being 'html' or 'latexpdf'. If using DESTDIR for installation, |
| 128 | pass the same DESTDIR to 'make sphinx-html' invocation. |
| 129 | |
Lennart Poettering | a24c64f | 2013-03-05 18:53:21 +0100 | [diff] [blame] | 130 | USERS AND GROUPS: |
Lennart Poettering | 37495ee | 2013-03-05 19:15:31 +0100 | [diff] [blame] | 131 | Default udev rules use the following standard system group |
| 132 | names, which need to be resolvable by getgrnam() at any time, |
| 133 | even in the very early boot stages, where no other databases |
| 134 | and network are available: |
| 135 | |
| 136 | tty, dialout, kmem, video, audio, lp, floppy, cdrom, tape, disk |
Kay Sievers | 37c0e8f | 2013-03-05 19:04:48 +0100 | [diff] [blame] | 137 | |
Lennart Poettering | a24c64f | 2013-03-05 18:53:21 +0100 | [diff] [blame] | 138 | During runtime the journal daemon requires the |
Michael Biebl | 1a9ce3f | 2013-03-05 19:19:26 +0100 | [diff] [blame] | 139 | "systemd-journal" system group to exist. New journal files will |
Lennart Poettering | a24c64f | 2013-03-05 18:53:21 +0100 | [diff] [blame] | 140 | be readable by this group (but not writable) which may be used |
| 141 | to grant specific users read access. |
| 142 | |
| 143 | It is also recommended to grant read access to all journal |
| 144 | files to the system groups "wheel" and "adm" with a command |
| 145 | like the following in the post installation script of the |
| 146 | package: |
| 147 | |
| 148 | # setfacl -nm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/ |
| 149 | |
Lennart Poettering | 37495ee | 2013-03-05 19:15:31 +0100 | [diff] [blame] | 150 | The journal gateway daemon requires the |
Michael Biebl | 1a9ce3f | 2013-03-05 19:19:26 +0100 | [diff] [blame] | 151 | "systemd-journal-gateway" system user and group to |
Lennart Poettering | 37495ee | 2013-03-05 19:15:31 +0100 | [diff] [blame] | 152 | exist. During execution this network facing service will drop |
| 153 | privileges and assume this uid/gid for security reasons. |
| 154 | |
Lennart Poettering | 21bc923 | 2011-02-23 01:12:07 +0100 | [diff] [blame] | 155 | WARNINGS: |
| 156 | systemd will warn you during boot if /etc/mtab is not a |
| 157 | symlink to /proc/mounts. Please ensure that /etc/mtab is a |
| 158 | proper symlink. |
| 159 | |
| 160 | systemd will warn you during boot if /usr is on a different |
| 161 | file system than /. While in systemd itself very little will |
Lennart Poettering | ed1c99f | 2011-03-04 03:58:52 +0100 | [diff] [blame] | 162 | break if /usr is on a separate partition many of its |
Lennart Poettering | 21bc923 | 2011-02-23 01:12:07 +0100 | [diff] [blame] | 163 | dependencies very likely will break sooner or later in one |
| 164 | form or another. For example udev rules tend to refer to |
| 165 | binaries in /usr, binaries that link to libraries in /usr or |
| 166 | binaries that refer to data files in /usr. Since these |
| 167 | breakages are not always directly visible systemd will warn |
| 168 | about this, since this kind of file system setup is not really |
| 169 | supported anymore by the basic set of Linux OS components. |
Lennart Poettering | fc7a744 | 2011-03-01 23:44:26 +0100 | [diff] [blame] | 170 | |
Lennart Poettering | aa16713 | 2011-03-04 05:07:01 +0100 | [diff] [blame] | 171 | For more information on this issue consult |
| 172 | http://freedesktop.org/wiki/Software/systemd/separate-usr-is-broken |
| 173 | |
Zbigniew Jędrzejewski-Szmek | 1b4bb4f | 2012-10-12 12:56:19 +0000 | [diff] [blame] | 174 | To run systemd under valgrind, compile with VALGRIND defined |
| 175 | (e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise, |
| 176 | false positives will be triggered by code which violates |
| 177 | some rules but is actually safe. |