5 | | Systemd 216 has quite a bit of changes since 213. We need to backtrack changes since 213: |
6 | | |
7 | | |
| 8 | Systemd 217 has quite a bit of changes since 213. We need to backtrack changes since 213: |
| 9 | |
| 10 | CHANGES WITH 217: |
| 11 | |
| 12 | * journalctl gained the new options -t/--identifier= to match |
| 13 | on the syslog identifier (aka "tag"), as well as --utc to |
| 14 | show log timestamps in the UTC timezone. journalctl now also |
| 15 | accepts -n/--lines=all to disable line capping in a pager. |
| 16 | |
| 17 | * Services can notify the manager before they start a reload |
| 18 | (by sending RELOADING=1) or shutdown (by sending |
| 19 | STOPPING=1). This allows the manager to track and show the |
| 20 | internal state of daemons and closes a race condition when |
| 21 | the process is still running but has closed its D-Bus |
| 22 | connection. |
| 23 | |
| 24 | * Services with Type=oneshot do not have to have any ExecStart |
| 25 | commands anymore. |
| 26 | |
| 27 | * User units are now loaded also from |
| 28 | $XDG_RUNTIME_DIR/systemd/user/. This is similar to the |
| 29 | /run/systemd/user directory that was already previously |
| 30 | supported, but is under the control of the user. |
| 31 | |
| 32 | * Job timeouts (i.e. time-outs on the time a job that is |
| 33 | queued stays in the run queue) can now optionally result in |
| 34 | immediate reboot or power-off actions (JobTimeoutAction= and |
| 35 | JobTimeoutRebootArgument=). This is useful on ".target" |
| 36 | units, to limit the maximum time a target remains |
| 37 | undispatched in the run queue, and to trigger an emergency |
| 38 | operation in such a case. This is now used by default to |
| 39 | turn off the system if boot-up (as defined by everything in |
| 40 | basic.target) hangs and does not complete for at least |
| 41 | 15min. Also, if power-off or reboot hang for at least 30min |
| 42 | an immediate power-off/reboot operation is triggered. This |
| 43 | functionality is particularly useful to increase reliability |
| 44 | on embedded devices, but also on laptops which might |
| 45 | accidentally get powered on when carried in a backpack and |
| 46 | whose boot stays stuck in a hard disk encryption passphrase |
| 47 | question. |
| 48 | |
| 49 | * systemd-logind can be configured to also handle lid switch |
| 50 | events even when the machine is docked or multiple displays |
| 51 | are attached (HandleLidSwitchDocked= option). |
| 52 | |
| 53 | * A helper binary and a service have been added which can be |
| 54 | used to resume from hibernation in the initramfs. A |
| 55 | generator will parse the resume= option on the kernel |
| 56 | command-line to trigger resume. |
| 57 | |
| 58 | * A user console daemon systemd-consoled has been |
| 59 | added. Currently, it is a preview, and will so far open a |
| 60 | single terminal on each session of the user marked as |
| 61 | Desktop=systemd-console. |
| 62 | |
| 63 | * Route metrics can be specified for DHCP routes added by |
| 64 | systemd-networkd. |
| 65 | |
| 66 | * The SELinux context of socket-activated services can be set |
| 67 | from the information provided by the networking stack |
| 68 | (SELinuxContextFromNet= option). |
| 69 | |
| 70 | * Userspace firmware loading support has been removed and |
| 71 | the minimum supported kernel version is thus bumped to 3.7. |
| 72 | |
| 73 | * Timeout for udev workers has been increased from 1 to 3 |
| 74 | minutes, but a warning will be printed after 1 minute to |
| 75 | help diagnose kernel modules that take a long time to load. |
| 76 | |
| 77 | * Udev rules can now remove tags on devices with TAG-="foobar". |
| 78 | |
| 79 | * systemd's readahead implementation has been removed. In many |
| 80 | circumstances it didn't give expected benefits even for |
| 81 | rotational disk drives and was becoming less relevant in the |
| 82 | age of SSDs. As none of the developers has been using |
| 83 | rotating media anymore, and nobody stepped up to actively |
| 84 | maintain this component of systemd it has now been removed. |
| 85 | |
| 86 | * Swap units can use Discard= to specify discard options. |
| 87 | Discard options specified for swaps in /etc/fstab are now |
| 88 | respected. |
| 89 | |
| 90 | * Docker containers are now detected as a separate type of |
| 91 | virtualization. |
| 92 | |
| 93 | * The Password Agent protocol gained support for queries where |
| 94 | the user input is shown, useful e.g. for user names. |
| 95 | systemd-ask-password gained a new --echo option to turn that |
| 96 | on. |
| 97 | |
| 98 | * The default sysctl.d/ snippets will now set: |
| 99 | |
| 100 | net.core.default_qdisc = fq_codel |
| 101 | |
| 102 | This selects Fair Queuing Controlled Delay as the default |
| 103 | queuing discipline for network interfaces. fq_codel helps |
| 104 | fight the network bufferbloat problem. It is believed to be |
| 105 | a good default with no tuning required for most workloads. |
| 106 | Downstream distributions may override this choice. On 10Gbit |
| 107 | servers that do not do forwarding, "fq" may perform better. |
| 108 | Systems without a good clocksource should use "pfifo_fast". |
| 109 | |
| 110 | * If kdbus is enabled during build a new option BusPolicy= is |
| 111 | available for service units, that allows locking all service |
| 112 | processes into a stricter bus policy, in order to limit |
| 113 | access to various bus services, or even hide most of them |
| 114 | from the service's view entirely. |
| 115 | |
| 116 | * networkctl will now show the .network and .link file |
| 117 | networkd has applied to a specific interface. |
| 118 | |
| 119 | * sd-login gained a new API call sd_session_get_desktop() to |
| 120 | query which desktop environment has been selected for a |
| 121 | session. |
| 122 | |
| 123 | * UNIX utmp support is now compile-time optional to support |
| 124 | legacy-free systems. |
| 125 | |
| 126 | * systemctl gained two new commands "add-wants" and |
| 127 | "add-requires" for pulling in units from specific targets |
| 128 | easily. |
| 129 | |
| 130 | * If the word "rescue" is specified on the kernel command line |
| 131 | the system will now boot into rescue mode (aka |
| 132 | rescue.target), which was previously available only by |
| 133 | specifying "1" or "systemd.unit=rescue.target" on the kernel |
| 134 | command line. This new kernel command line option nicely |
| 135 | mirrors the already existing "emergency" kernel command line |
| 136 | option. |
| 137 | |
| 138 | * New kernel command line options mount.usr=, mount.usrflags=, |
| 139 | mount.usrfstype= have been added that match root=, rootflags=, |
| 140 | rootfstype= but allow mounting a specific file system to |
| 141 | /usr. |
| 142 | |
| 143 | * The $NOTIFY_SOCKET is now also passed to control processes of |
| 144 | services, not only the main process. |
| 145 | |
| 146 | * This version reenables support for fsck's -l switch. This |
| 147 | means at least version v2.25 of util-linux is required for |
| 148 | operation, otherwise dead-locks on device nodes may |
| 149 | occur. Again: you need to update util-linux to at least |
| 150 | v2.25 when updating systemd to v217. |
| 151 | |
| 152 | * The "multi-seat-x" tool has been removed from systemd, as |
| 153 | its functionality has been integrated into X servers 1.16, |
| 154 | and the tool is hence redundant. It is recommended to update |
| 155 | display managers invoking this tool to simply invoke X |
| 156 | directly from now on, again. |
| 157 | |
| 158 | * Support for the new ALLOW_INTERACTIVE_AUTHORIZATION D-Bus |
| 159 | message flag has been added for all of systemd's PolicyKit |
| 160 | authenticated method calls has been added. In particular |
| 161 | this now allows optional interactive authorization via |
| 162 | PolicyKit for many of PID1's privileged operations such as |
| 163 | unit file enabling and disabling. |
| 164 | |
| 165 | * "udevadm hwdb --update" learnt a new switch "--usr" for |
| 166 | placing the rebuilt hardware database in /usr instead of |
| 167 | /etc. When used only hardware database entries stored in |
| 168 | /usr will be used, and any user database entries in /etc are |
| 169 | ignored. This functionality is useful for vendors to ship a |
| 170 | pre-built database on systems where local configuration is |
| 171 | unnecessary or unlikely. |
| 172 | |
| 173 | * Calendar time specifications in .timer units now also |
| 174 | understand the strings "semi-annually", "quarterly" and |
| 175 | "minutely" as shortcuts (in addition to the preexisting |
| 176 | "anually", "hourly", ...). |
| 177 | |
| 178 | * systemd-tmpfiles will now correctly create files in /dev |
| 179 | at boot which are marked for creation only at boot. It is |
| 180 | recommended to always create static device nodes with 'c!' |
| 181 | and 'b!', so that they are created only at boot and not |
| 182 | overwritten at runtime. |
| 183 | |
| 184 | * When the watchdog logic is used for a service (WatchdogSec=) |
| 185 | and the watchdog timeout is hit the service will now be |
| 186 | terminated with SIGABRT (instead of just SIGTERM), in order |
| 187 | to make sure a proper coredump and backtrace is |
| 188 | generated. This ensures that hanging services will result in |
| 189 | similar coredump/backtrace behaviour as services that hit a |
| 190 | segmentation fault. |