Lennart Poettering | d657c51 | 2012-01-25 02:20:38 +0100 | [diff] [blame] | 1 | systemd System and Service Manager |
Lennart Poettering | 220a21d | 2012-01-25 01:02:41 +0100 | [diff] [blame] | 2 | |
Lennart Poettering | ea5943d | 2012-05-24 16:39:55 +0200 | [diff] [blame^] | 3 | CHANGES WITH 183: |
Kay Sievers | 194bbe3 | 2012-04-15 02:35:31 +0200 | [diff] [blame] | 4 | * udev: all udev sources are merged into the systemd source tree now. |
| 5 | All future udev development will happen in the systemd tree. It |
| 6 | is still fully supported to use the udev daemon and tools without |
| 7 | systemd running, like in initramfs or other init systems. Building |
| 8 | udev though, will require the *build* of the systemd tree, but |
Lennart Poettering | ea5943d | 2012-05-24 16:39:55 +0200 | [diff] [blame^] | 9 | udev can be properly *run* without systemd. |
Kay Sievers | 07cd4fc | 2012-04-08 16:50:16 +0200 | [diff] [blame] | 10 | |
Tollef Fog Heen | 91cf7e5 | 2012-04-17 09:47:23 +0200 | [diff] [blame] | 11 | * udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles |
Kay Sievers | f13b388 | 2012-04-16 23:32:22 +0200 | [diff] [blame] | 12 | should be used to create dead device nodes as workarounds for broken |
| 13 | subsystems. |
Kay Sievers | 64661ee | 2012-04-06 19:52:49 +0200 | [diff] [blame] | 14 | |
Kay Sievers | 2d13da8 | 2012-04-09 20:45:45 +0200 | [diff] [blame] | 15 | * udev: RUN+="socket:..." and udev_monitor_new_from_socket() is |
| 16 | no longer supported. udev_monitor_new_from_netlink() needs to be |
| 17 | used to subscribe to events. |
| 18 | |
Kay Sievers | 194bbe3 | 2012-04-15 02:35:31 +0200 | [diff] [blame] | 19 | * udev: when udevd is started by systemd, processes which are left |
| 20 | behind by forking them off of udev rules, are unconditionally cleaned |
| 21 | up and killed now after the event handling has finished. Services or |
| 22 | daemons must be started as systemd services. Services can be |
Lennart Poettering | ea5943d | 2012-05-24 16:39:55 +0200 | [diff] [blame^] | 23 | pulled-in by udev to get started, but they can no longer be directly |
Kay Sievers | 194bbe3 | 2012-04-15 02:35:31 +0200 | [diff] [blame] | 24 | forked by udev rules. |
| 25 | |
Kay Sievers | f13b388 | 2012-04-16 23:32:22 +0200 | [diff] [blame] | 26 | * udev: the daemon binary is called systemd-udevd now and installed |
| 27 | in /usr/lib/systemd/. Standalone builds or non-systemd systems need |
| 28 | to adapt to that, create symlink, or rename the binary after building |
| 29 | it. |
| 30 | |
Lennart Poettering | ea5943d | 2012-05-24 16:39:55 +0200 | [diff] [blame^] | 31 | * libudev no longer provides these symbols: |
Kay Sievers | c195956 | 2012-05-15 23:44:28 +0200 | [diff] [blame] | 32 | udev_monitor_from_socket() |
| 33 | udev_queue_get_failed_list_entry() |
| 34 | udev_get_{dev,sys,run}_path() |
Lennart Poettering | ea5943d | 2012-05-24 16:39:55 +0200 | [diff] [blame^] | 35 | The versions number was bumped and symbol versioning introduced. |
Kay Sievers | c195956 | 2012-05-15 23:44:28 +0200 | [diff] [blame] | 36 | |
Lennart Poettering | ea5943d | 2012-05-24 16:39:55 +0200 | [diff] [blame^] | 37 | * systemd-loginctl and systemd-journalctl have been renamed |
Kay Sievers | 18b754d | 2012-03-30 23:18:33 +0200 | [diff] [blame] | 38 | to logingctl and journalctl to match systemctl. |
| 39 | |
| 40 | * The config files: /etc/systemd/systemd-logind.conf and |
| 41 | /etc/systemd/systemd-journald.conf have been renamed to |
| 42 | logind.conf and journald.conf. Package updates should rename |
| 43 | the files to the new names on upgrade. |
| 44 | |
Lennart Poettering | ea5943d | 2012-05-24 16:39:55 +0200 | [diff] [blame^] | 45 | * For almost all files the license is now LGPL2.1+, changed |
| 46 | from the previous GPL2.0+. Exceptions are some minor stuff |
| 47 | of udev (which will be changed to LGPL2.1 eventually, too), |
| 48 | and the MIT licensed sd-daemon.[ch] library that is suitable |
| 49 | to be used as drop-in files. |
| 50 | |
| 51 | * systemd and logind now handle system sleep states, in |
| 52 | particulary suspending and hibernating. |
| 53 | |
| 54 | * logind now implements a sleep/shutdown/idle inhibiting logic |
| 55 | suitable for a variety of uses. Soonishly Lennart will blog |
| 56 | about this in more detail. |
| 57 | |
| 58 | * var-run.mount and var-lock.mount are no longer provided |
| 59 | (which prevously bind mounted these directories to their new |
| 60 | places). Distributions which have not converted these |
| 61 | directories to symlinks should consider stealing these files |
| 62 | from git history and add them downstream. |
| 63 | |
| 64 | * We introduced the Documentation= field for units and added |
| 65 | this to all our shipped units. This is useful to make it |
| 66 | easier to explore that boot and the purpose of the various |
| 67 | units. |
| 68 | |
| 69 | * All smaller setup units (such as |
| 70 | systemd-vconsole-setup.service) now detect properly if they |
| 71 | are run in a container and are skipped when |
| 72 | appropriate. This guarantees an entirely noise-free boot in |
| 73 | Linux container environments such as systemd-nspawn. |
| 74 | |
| 75 | * A framework for implementing offline system updates is now |
| 76 | integrated, for details see: |
| 77 | http://freedesktop.org/wiki/Software/systemd/SystemUpdates |
| 78 | |
| 79 | * A new service type Type=idle is available now which helps us |
| 80 | avoiding ugly interleaving of getty output and boot status |
| 81 | messages. |
| 82 | |
| 83 | * There's now a system-wide CapabalityBoundingSet= option to |
| 84 | globally reduce the set of capabailities for the |
| 85 | system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO, |
| 86 | CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or |
| 87 | even CAP_NET_ADMIN system-wide for secure systems. |
| 88 | |
| 89 | * There are now system-wide DefaultLimitXXX= options to |
| 90 | globally change the defaults of the various resource limits |
| 91 | for all units started by PID 1. |
| 92 | |
| 93 | * Harald Hoyer's systemd test suite has been integrated into |
| 94 | systemd which allows easy testing of systemd builds in qemu |
| 95 | and nspawn. (This is really awesome! Ask us for details!) |
| 96 | |
| 97 | * The fstab parser is now implemented as generator not inside |
| 98 | of PID 1. |
| 99 | |
| 100 | * systemctl will now warn you if .mount units generated from |
| 101 | /etc/fstab are out of date due to changes in fstab that |
| 102 | haven't been read by systemd yet. |
| 103 | |
| 104 | * systemd is now suitable for usage in initrds. Dracut has |
| 105 | already been updated to make use of this. With this in place |
| 106 | initrds get a slight bit faster but primarily are much |
| 107 | easier to introspect and debug since "systemctl status" in |
| 108 | the host system can be used to introspect initrd services, |
| 109 | and the journal from the initrd is kept around too. |
| 110 | |
| 111 | * systemd-delta has been added, a tool to explore differences |
| 112 | between user/admin configuration and vendor defaults. |
| 113 | |
| 114 | * PrivateTmp= now affects both /tmp and /var/tmp. |
| 115 | |
| 116 | * Boot time status messages are now much prettier and feature |
| 117 | proper english language. Booting up systemd has never been |
| 118 | so sexy. |
| 119 | |
| 120 | * Read-ahead pack files now include the inode number of all |
| 121 | files to pre-cache. When the inode changes the pre-caching |
| 122 | is not attempted. This should be nicer to deal with updated |
| 123 | packages which might result in changes of read-ahead |
| 124 | patterns. |
| 125 | |
| 126 | * We now temporaritly lower the kernel's read_ahead_kb variable |
| 127 | when collecting read-ahead data to ensure the kernel's |
| 128 | built-in read-ahead does not add noise to our measurements |
| 129 | of necessary blocks to pre-cache. |
| 130 | |
| 131 | * There's now RequiresMountsFor= to add automatic dependencies |
| 132 | for all mounts necessary for a specific file system path. |
| 133 | |
| 134 | * MountAuto= and SwapAuto= have been removed from |
| 135 | system.conf. Mounting file systems at boot has to take place |
| 136 | in systemd now. |
| 137 | |
| 138 | * nspawn now learned a new switch --uuid= to set the machine |
| 139 | ID on the command line. |
| 140 | |
| 141 | * nspawn now loearned the -b switch to automatically search |
| 142 | for an init system. |
| 143 | |
| 144 | * vt102 is now the default TERM for serial TTYs, upgraded from |
| 145 | vt100. |
| 146 | |
| 147 | * systemd-logind now works on VT-less systems. |
| 148 | |
| 149 | * The build tree has been reorganized. The individual |
| 150 | componets now have directories of their own. |
| 151 | |
| 152 | * A new condition type ConditionPathIsReadWrite= is now available. |
| 153 | |
| 154 | * nspawn learned the new -C switch to create cgroups for the |
| 155 | container in other hierarchies. |
| 156 | |
| 157 | * We now have support for hardware watchdogs, configurable in |
| 158 | system.conf. |
| 159 | |
| 160 | * The scheduled shutdown logic now has a public API. |
| 161 | |
| 162 | * We now mount /tmp as tmpfs by default, but this can be |
| 163 | masked and /etc/fstab can override it. |
| 164 | |
| 165 | * Since udisks doesn't make use of /media anymore we are not |
| 166 | mounting a tmpfs on it anymore. |
| 167 | |
| 168 | * journalctl gained a new --local switch to only interleave |
| 169 | locally generated journal files. |
| 170 | |
| 171 | * We can now load the IMA policy at boot automatically. |
| 172 | |
| 173 | * The GTK tools have been split off into a systemd-ui. |
| 174 | |
Lennart Poettering | 16f1239 | 2012-03-16 01:57:47 +0100 | [diff] [blame] | 175 | CHANGES WITH 44: |
| 176 | * This is mostly a bugfix release |
| 177 | |
| 178 | * Support optional initialization of the machine ID from the |
| 179 | KVM or container configured UUID. |
| 180 | |
| 181 | * Support immediate reboots with "systemctl reboot -ff" |
| 182 | |
| 183 | * Show /etc/os-release data in systemd-analyze output |
| 184 | |
| 185 | * Many bugfixes for the journal, including endianess fixes and |
| 186 | ensuring that disk space enforcement works |
| 187 | |
| 188 | * sd-login.h is C++ comptaible again |
| 189 | |
| 190 | * Extend the /etc/os-release format on request of the Debian |
| 191 | folks |
| 192 | |
| 193 | * We now refuse non-UTF8 strings used in various configuration |
| 194 | and unit files. This is done to ensure we don't pass invalid |
| 195 | data over D-Bus or expose it elsewhere. |
| 196 | |
| 197 | * Register Mimo USB Screens as suitable for automatic seat |
| 198 | configuration |
| 199 | |
| 200 | * Read SELinux client context from journal clients in a race |
| 201 | free fashion |
| 202 | |
| 203 | * Reorder configuration file lookup order. /etc now always |
| 204 | overrides /run in order to allow the administrator to always |
| 205 | and unconditionally override vendor supplied or |
| 206 | automatically generated data. |
| 207 | |
| 208 | * The various user visible bits of the journal now have man |
| 209 | pages. We still lack man pages for the journal API calls |
| 210 | however. |
| 211 | |
| 212 | * We now ship all man pages in HTML format again in the |
| 213 | tarball. |
| 214 | |
| 215 | Contributions from: Dave Reisner, Dirk Eibach, Frederic |
| 216 | Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti |
| 217 | Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry |
| 218 | Reding |
| 219 | |
Lennart Poettering | 437b7de | 2012-02-15 05:00:27 +0100 | [diff] [blame] | 220 | CHANGES WITH 43: |
| 221 | * This is mostly a bugfix release |
| 222 | |
| 223 | * systems lacking /etc/os-release are no longer supported. |
| 224 | |
| 225 | * Various functionality updates to libsystemd-login.so |
| 226 | |
| 227 | * Track class of PAM logins to distuingish greeters from |
| 228 | normal user logins. |
| 229 | |
| 230 | Contributions from: Kay Sievers, Lennart Poettering, Michael |
| 231 | Biebl |
| 232 | |
Lennart Poettering | 204fa33 | 2012-02-11 01:52:18 +0100 | [diff] [blame] | 233 | CHANGES WITH 42: |
| 234 | * This is an important bugfix release for v41. |
| 235 | |
| 236 | * Building man pages is now optional which should be useful |
| 237 | for those building systemd from git but unwilling to install |
| 238 | xsltproc. |
| 239 | |
| 240 | * Watchdog support for supervising services is now usable. In |
| 241 | a future release support for hardware watchdogs |
| 242 | (i.e. /dev/watchdog) will be added building on this. |
| 243 | |
| 244 | * Service start rate limiting is now configurable and can be |
| 245 | turned off per service. When a start rate limit is hit a |
| 246 | reboot can automatically be triggered. |
| 247 | |
| 248 | * New CanReboot(), CanPowerOff() bus calls in systemd-logind. |
| 249 | |
| 250 | Contributions from: Benjamin Franzke, Bill Nottingham, |
| 251 | Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal |
| 252 | Schmidt, Michał Górny, Piotr Drąg |
| 253 | |
Kay Sievers | e0d2532 | 2012-02-08 00:08:10 +0100 | [diff] [blame] | 254 | CHANGES WITH 41: |
| 255 | * The systemd binary is installed /usr/lib/systemd/systemd now; |
| 256 | An existing /sbin/init symlink needs to be adapted with the |
| 257 | package update. |
| 258 | |
Lennart Poettering | b13df96 | 2012-02-09 01:06:07 +0100 | [diff] [blame] | 259 | * The code that loads kernel modules has been ported to invoke |
| 260 | libkmod directly, instead of modprobe. This means we do not |
| 261 | support systems with module-init-tools anymore. |
| 262 | |
| 263 | * Watchdog support is now already useful, but still not |
| 264 | complete. |
| 265 | |
| 266 | * A new kernel command line option systemd.setenv= is |
| 267 | understood to set system wide environment variables |
| 268 | dynamically at boot. |
| 269 | |
Lennart Poettering | ccd07a0 | 2012-02-09 02:06:13 +0100 | [diff] [blame] | 270 | * We now limit the set of capabilities of systemd-journald. |
| 271 | |
Lennart Poettering | 353e12c | 2012-02-09 03:18:04 +0100 | [diff] [blame] | 272 | * We now set SIGPIPE to ignore by default, since it only is |
| 273 | useful in shell pipelines, and has little use in general |
| 274 | code. This can be disabled with IgnoreSIPIPE=no in unit |
| 275 | files. |
| 276 | |
Lennart Poettering | b13df96 | 2012-02-09 01:06:07 +0100 | [diff] [blame] | 277 | Contributions from: Benjamin Franzke, Kay Sievers, Lennart |
| 278 | Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen, |
| 279 | William Douglas |
| 280 | |
Lennart Poettering | d26e427 | 2012-02-07 03:38:23 +0100 | [diff] [blame] | 281 | CHANGES WITH 40: |
| 282 | * This is mostly a bugfix release |
| 283 | |
| 284 | * We now expose the reason why a service failed in the |
| 285 | "Result" D-Bus property. |
| 286 | |
| 287 | * Rudimentary service watchdog support (will be completed over |
| 288 | the next few releases.) |
| 289 | |
| 290 | * When systemd forks off in order execute some service we will |
| 291 | now immediately changes its argv[0] to reflect which process |
| 292 | it will execute. This is useful to minimize the time window |
| 293 | with a generic argv[0], which makes bootcharts more useful |
| 294 | |
Lennart Poettering | b13df96 | 2012-02-09 01:06:07 +0100 | [diff] [blame] | 295 | Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay |
| 296 | Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt, |
| 297 | Mike Kazantsev, Ray Strode |
| 298 | |
Lennart Poettering | 220a21d | 2012-01-25 01:02:41 +0100 | [diff] [blame] | 299 | CHANGES WITH 39: |
| 300 | * This is mostly a test release, but incorporates many |
| 301 | bugfixes. |
| 302 | |
| 303 | * New systemd-cgtop tool to show control groups by their |
| 304 | resource usage. |
| 305 | |
| 306 | * Linking against libacl for ACLs is optional again. If |
| 307 | disabled, support tracking device access for active logins |
| 308 | goes becomes unavailable, and so does access to the user |
| 309 | journals by the respective users. |
| 310 | |
| 311 | * If a group "adm" exists, journal files are automatically |
| 312 | owned by them, thus allow members of this group full access |
| 313 | to the system journal as well as all user journals. |
| 314 | |
| 315 | * The journal now stores the SELinux context of the logging |
| 316 | client for all entries. |
| 317 | |
| 318 | * Add C++ inclusion guards to all public headers |
| 319 | |
| 320 | * New output mode "cat" in the journal to print only text |
| 321 | messages, without any meta data like date or time. |
| 322 | |
| 323 | * Include tiny X server wrapper as a temporary stop-gap to |
| 324 | teach XOrg udev display enumeration. This is used by display |
| 325 | managers such as gdm, and will go away as soon as XOrg |
| 326 | learned native udev hotplugging for display devices. |
| 327 | |
| 328 | * Add new systemd-cat tool for executing arbitrary programs |
| 329 | with STDERR/STDOUT connected to the journal. Can also act as |
| 330 | BSD logger replacement, and does so by default. |
| 331 | |
| 332 | * Optionally store all locally generated coredumps in the |
| 333 | journal along with meta data. |
| 334 | |
| 335 | * systemd-tmpfiles learnt four new commands: n, L, c, b, for |
| 336 | writing short strings to files (for usage for /sys), and for |
| 337 | creating symlinks, character and block device nodes. |
| 338 | |
| 339 | * New unit file option ControlGroupPersistent= to make cgroups |
| 340 | persistent, following the mechanisms outlined in |
| 341 | http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups |
| 342 | |
| 343 | * Support multiple local RTCs in a sane way |
| 344 | |
| 345 | * No longer monopolize IO when replaying readahead data on |
| 346 | rotating disks, since we might starve non-file-system IO to |
| 347 | death, since fanotify() will not see accesses done by blkid, |
| 348 | or fsck. |
| 349 | |
| 350 | * Don't show kernel threads in systemd-cgls anymore, unless |
| 351 | requested with new -k switch. |
| 352 | |
| 353 | Contributions from: Dan Horák, Kay Sievers, Lennart |
| 354 | Poettering, Michal Schmidt |
| 355 | |
| 356 | CHANGES WITH 38: |
| 357 | * This is mostly a test release, but incorporates many |
| 358 | bugfixes. |
| 359 | |
| 360 | * The git repository moved to: |
| 361 | git://anongit.freedesktop.org/systemd/systemd |
| 362 | ssh://git.freedesktop.org/git/systemd/systemd |
| 363 | |
| 364 | * First release with the journal |
| 365 | http://0pointer.de/blog/projects/the-journal.html |
| 366 | |
| 367 | * The journal replaces both systemd-kmsg-syslogd and |
| 368 | systemd-stdout-bridge. |
| 369 | |
| 370 | * New sd_pid_get_unit() API call in libsystemd-logind |
| 371 | |
| 372 | * Many systemadm clean-ups |
| 373 | |
| 374 | * Introduce remote-fs-pre.target which is ordered before all |
| 375 | remote mounts and may be used to start services before all |
| 376 | remote mounts. |
| 377 | |
| 378 | * Added Mageia support |
| 379 | |
| 380 | * Add bash completion for systemd-loginctl |
| 381 | |
| 382 | * Actively monitor PID file creation for daemons which exit in |
| 383 | the parent process before having finished writing the PID |
| 384 | file in the daemon process. Daemons which do this need to be |
| 385 | fixed (i.e. PID file creation must have finished before the |
| 386 | parent exits), but we now react a bit more gracefully to them. |
| 387 | |
| 388 | * Add colourful boot output, mimicking the well-known output |
| 389 | of existing distributions. |
| 390 | |
| 391 | * New option PassCredentials= for socket units, for |
| 392 | compatibility with a recent kernel ABI breakage. |
| 393 | |
| 394 | * /etc/rc.local is now hooked in via a generator binary, and |
| 395 | thus will no longer act as synchronization point during |
| 396 | boot. |
| 397 | |
| 398 | * systemctl list-unit-files now supports --root=. |
| 399 | |
| 400 | * systemd-tmpfiles now understands two new commands: z, Z for |
| 401 | relabelling files according to the SELinux database. This is |
| 402 | useful to apply SELinux labels to specific files in /sys, |
| 403 | among other things. |
| 404 | |
| 405 | * Output of SysV services is now forwarded to both the console |
| 406 | and the journal by default, not only just the console. |
| 407 | |
| 408 | * New man pages for all APIs from libsystemd-login. |
| 409 | |
| 410 | * The build tree got reorganized and a the build system is a |
| 411 | lot more modular allowing embedded setups to specifically |
| 412 | select the components of systemd they are interested in. |
| 413 | |
| 414 | * Support for Linux systems lacking the kernel VT subsystem is |
| 415 | restored. |
| 416 | |
| 417 | * configure's --with-rootdir= got renamed to |
| 418 | --with-rootprefix= to follow the naming used by udev and |
| 419 | kmod |
| 420 | |
| 421 | * Unless specified otherwise we'll now install to /usr instead |
| 422 | of /usr/local by default. |
| 423 | |
| 424 | * Processes with '@' in argv[0][0] are now excluded from the |
| 425 | final shut-down killing spree, following the logic explained |
| 426 | in: |
| 427 | http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons |
| 428 | |
| 429 | * All processes remaining in a service cgroup when we enter |
| 430 | the START or START_PRE states are now killed with |
| 431 | SIGKILL. That means it is no longer possible to spawn |
| 432 | background processes from ExecStart= lines (which was never |
| 433 | supported anyway, and bad style). |
| 434 | |
| 435 | * New PropagateReloadTo=/PropagateReloadFrom= options to bind |
| 436 | reloading of units together. |
| 437 | |
| 438 | Contributions from: Bill Nottingham, Daniel Walsh, Dave |
| 439 | Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay |
| 440 | Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt, |
| 441 | Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef |
| 442 | Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek |