| 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. |