mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
090771492f
While GNOME/KDE are generally capitalized, systemd tools generally are not, hence let's not start doing so in the XDG_CURRENT_SESSION environment variable.
4148 lines
198 KiB
Plaintext
4148 lines
198 KiB
Plaintext
systemd System and Service Manager
|
|
|
|
CHANGES WITH 217:
|
|
|
|
* journalctl gained the new options -t/--identifier= to match
|
|
on the syslog identifier (aka "tag"), as well as --utc to
|
|
show log timestamps in the UTC timezone. journalctl now also
|
|
accepts -n/--lines=all to disable line capping in a pager.
|
|
|
|
* Services can notify the manager before they start a reload
|
|
(by sending RELOADING=1) or shutdown (by sending
|
|
STOPPING=1). This allows the manager to track and show the
|
|
internal state of daemons and closes a race condition when
|
|
the process is still running but has closed its D-Bus
|
|
connection.
|
|
|
|
* Services with Type=oneshot do not have to have any ExecStart
|
|
commands anymore.
|
|
|
|
* User units are now loaded also from
|
|
$XDG_RUNTIME_DIR/systemd/user/. This is similar to the
|
|
/run/systemd/user directory that was already previously
|
|
supported, but is under the control of the user.
|
|
|
|
* Job timeouts (i.e. time-outs on the time a job that is
|
|
queued stays in the run queue) can now optionally result in
|
|
immediate reboot or power-off actions (JobTimeoutAction= and
|
|
JobTimeoutRebootArgument=). This is useful on ".target"
|
|
units, to limit the maximum time a target remains
|
|
undispatched in the run queue, and to trigger an emergency
|
|
operation in such a case. This is now used by default to
|
|
turn off the system if boot-up (as defined by everything in
|
|
basic.target) hangs and does not complete for at least
|
|
15min. Also, if power-off or reboot hang for at least 30min
|
|
an immediate power-off/reboot operation is triggered. This
|
|
functionality is particularly useful to increase reliability
|
|
on embedded devices, but also on laptops which might
|
|
accidentally get powered on when carried in a backpack and
|
|
whose boot stays stuck in a hard disk encryption passphrase
|
|
question.
|
|
|
|
* systemd-logind can be configured to also handle lid switch
|
|
events even when the machine is docked or multiple displays
|
|
are attached (HandleLidSwitchDocked= option).
|
|
|
|
* A helper binary and a service have been added which can be
|
|
used to resume from hibernation in the initramfs. A
|
|
generator will parse the resume= option on the kernel
|
|
command-line to trigger resume.
|
|
|
|
* A user console daemon systemd-consoled has been
|
|
added. Currently, it is a preview, and will so far open a
|
|
single terminal on each session of the user marked as
|
|
Desktop=systemd-console.
|
|
|
|
* Route metrics can be specified for DHCP routes added by
|
|
systemd-networkd.
|
|
|
|
* The SELinux context of socket-actived services can be set
|
|
from the information provided by the networking stack
|
|
(SELinuxContextFromNet= option).
|
|
|
|
* Userspace firmware loading support has been removed and
|
|
the minimum supported kernel version is thus bumped to 3.7.
|
|
|
|
* Timeout for udev workers has been increased from 1 to 3
|
|
minutes, but a warning will be printed after 1 minute to
|
|
help diagnose kernel modules that take a long time to load.
|
|
|
|
* Udev rules can now remove tags on devices with TAG-="foobar".
|
|
|
|
* systemd's readahead implementation has been removed. In many
|
|
circumstatances it didn't give expected benefits even for
|
|
rotational disk drives and was becoming less relevant in the
|
|
age of SSDs. As none of the developers has been using
|
|
rotating media anymore, and nobody stepped up to actively
|
|
maintain this component of systemd it has now been removed.
|
|
|
|
* Swap units can use Discard= to specify discard options.
|
|
Discard options specified for swaps in /etc/fstab are now
|
|
respected.
|
|
|
|
* Docker containers are now detected as a separate type of
|
|
virtualization.
|
|
|
|
* The Password Agent protocol gained support for queries where
|
|
the user input is shown, useful e.g. for usernames.
|
|
systemd-ask-password gained a new --echo option to turn that
|
|
on.
|
|
|
|
* The default sysctl.d/ snippets will now set:
|
|
|
|
net.core.default_qdisc = fq_codel
|
|
|
|
This selects Fair Queueing Controlled Delay as the default
|
|
queueing discipline for network interfaces. fq_codel helps
|
|
fight the network bufferbloat problem. It is believed to be
|
|
a good default with no tuning required for most workloads.
|
|
Downstream distributions may override this choice. On 10Gbit
|
|
servers that do not do forwarding, "fq" may perform better.
|
|
Systems without a good clocksource should use "pfifo_fast".
|
|
|
|
* If kdbus is enabled during build a new option BusPolicy= is
|
|
available for service units, that allows locking all service
|
|
processes into a stricter bus policy, in order to limit
|
|
access to various bus services, or even hide most of them
|
|
from the service's view entirely.
|
|
|
|
* networkctl will now show the .network and .link file
|
|
networkd has applied to a specific interface.
|
|
|
|
* sd-login gained a new API call sd_session_get_desktop() to
|
|
query which desktop environment has been selected for a
|
|
session.
|
|
|
|
* UNIX utmp support is now compile-time optional to support
|
|
legacy-free systems.
|
|
|
|
* systemctl gained two new commands "add-wants" and
|
|
"add-requires" for pulling in units from specific targets
|
|
easily.
|
|
|
|
* If the word "rescue" is specified on the kernel command line
|
|
the system will now boot into rescue mode (aka
|
|
rescue.target), which was previously available only by
|
|
specifying "1" or "systemd.unit=rescue.target" on the kernel
|
|
command line. This new kernel command line option nicely
|
|
mirrors the already existing "emergency" kernel command line
|
|
option.
|
|
|
|
* New kernel command line options mount.usr=, mount.usrflags=,
|
|
usrfstype= have been added that match root=, rootflags=,
|
|
rootfstype= but allow mounting a specific file system to
|
|
/usr.
|
|
|
|
* The $NOTIFY_SOCKET is now also passed to control processesof
|
|
services, not only the main process.
|
|
|
|
* This version reenables support for fsck's -l switch. This
|
|
means at least version v2.25 of util-linux is required for
|
|
operation, otherwise dead-locks on device nodes may
|
|
occur. Again: you need to update util-linux to at least
|
|
v2.25 when updating systemd to v217.
|
|
|
|
* The "multi-seat-x" tool has been removed from systemd, as
|
|
its functionality has been integrated into X servers 1.16,
|
|
and the tool is hence redundant. It is recommended to update
|
|
display managers invoking this tool to simply invoke X
|
|
directly from now on, again.
|
|
|
|
CHANGES WITH 216:
|
|
|
|
* timedated no longer reads NTP implementation unit names from
|
|
/usr/lib/systemd/ntp-units.d/*.list. Alternative NTP
|
|
implementations should add a
|
|
|
|
Conflicts=systemd-timesyncd.service
|
|
|
|
to their unit files to take over and replace systemd's NTP
|
|
default functionality.
|
|
|
|
* systemd-sysusers gained a new line type "r" for configuring
|
|
which UID/GID ranges to allocate system users/groups
|
|
from. Lines of type "u" may now add an additional column
|
|
that specifies the home directory for the system user to be
|
|
created. Also, systemd-sysusers may now optionally read user
|
|
information from STDIN instead of a file. This is useful for
|
|
invoking it from RPM preinst scriptlets that need to create
|
|
users before the first RPM file is installed since these
|
|
files might need to be owned by them. A new
|
|
%sysusers_create_inline RPM macro has been introduced to do
|
|
just that. systemd-sysusers now updates the shadow files as
|
|
well as the user/group databases, which should enhance
|
|
compatibility with certain tools like grpck.
|
|
|
|
* A number of bus APIs of PID 1 now optionally consult
|
|
PolicyKit to permit access for otherwise unprivileged
|
|
clients under certain conditions. Note that this currently
|
|
doesn't support interactive authentication yet, but this is
|
|
expected to be added eventually, too.
|
|
|
|
* /etc/machine-info now has new fields for configuring the
|
|
deployment environment of the machine, as well as the
|
|
location of the machine. hostnamectl has been updated with
|
|
new command to update these fields.
|
|
|
|
* systemd-timesyncd has been updated to automatically acquire
|
|
NTP server information from systemd-networkd, which might
|
|
have been discovered via DHCP.
|
|
|
|
* systemd-resolved now includes a caching DNS stub resolver
|
|
and a complete LLMNR name resolution implementation. A new
|
|
NSS module "nss-resolve" has been added which can be used
|
|
instead of glibc's own "nss-dns" to resolve hostnames via
|
|
systemd-resolved. Hostnames, addresses and arbitrary RRs may
|
|
be resolved via systemd-resolved D-Bus APIs. In contrast to
|
|
the glibc internal resolver systemd-resolved is aware of
|
|
multi-homed system, and keeps DNS server and caches separate
|
|
and per-interface. Queries are sent simultaneously on all
|
|
interfaces that have DNS servers configured, in order to
|
|
properly handle VPNs and local LANs which might resolve
|
|
separate sets of domain names. systemd-resolved may acquire
|
|
DNS server information from systemd-networkd automatically,
|
|
which in turn might have discovered them via DHCP. A tool
|
|
"systemd-resolve-host" has been added that may be used to
|
|
query the DNS logic in resolved. systemd-resolved implements
|
|
IDNA and automatically uses IDNA or UTF-8 encoding depending
|
|
on whether classic DNS or LLMNR is used as transport. In the
|
|
next releases we intend to add a DNSSEC and mDNS/DNS-SD
|
|
implementation to systemd-resolved.
|
|
|
|
* A new NSS module nss-mymachines has been added, that
|
|
automatically resolves the names of all local registered
|
|
containers to their respective IP addresses.
|
|
|
|
* A new client tool "networkctl" for systemd-networkd has been
|
|
added. It currently is entirely passive and will query
|
|
networking configuration from udev, rtnetlink and networkd,
|
|
and present it to the user in a very friendly
|
|
way. Eventually, we hope to extend it to become a full
|
|
control utility for networkd.
|
|
|
|
* .socket units gained a new DeferAcceptSec= setting that
|
|
controls the kernels' TCP_DEFER_ACCEPT sockopt for
|
|
TCP. Similar, support for controlling TCP keep-alive
|
|
settings has been added (KeepAliveTimeSec=,
|
|
KeepAliveIntervalSec=, KeepAliveProbes=). Also, support for
|
|
turning off Nagle's algorithm on TCP has been added
|
|
(NoDelay=).
|
|
|
|
* logind learned a new session type "web", for use in projects
|
|
like Cockpit which register web clients as PAM sessions.
|
|
|
|
* timer units with at least one OnCalendar= setting will now
|
|
be started only after timer-sync.target has been
|
|
reached. This way they will not elapse before the system
|
|
clock has been corrected by a local NTP client or
|
|
similar. This is particular useful on RTC-less embedded
|
|
machines, that come up with an invalid system clock.
|
|
|
|
* systemd-nspawn's --network-veth= switch should now result in
|
|
stable MAC addresses for both the outer and the inner side
|
|
of the link.
|
|
|
|
* systemd-nspawn gained a new --volatile= switch for running
|
|
container instances with /etc or /var unpopulated.
|
|
|
|
* The kdbus client code has been updated to use the new Linux
|
|
3.17 memfd subsystem instead of the old kdbus-specific one.
|
|
|
|
* systemd-networkd's DHCP client and server now support
|
|
FORCERENEW. There are also new configuration options to
|
|
configure the vendor client identifier and broadcast mode
|
|
for DHCP.
|
|
|
|
* systemd will no longer inform the kernel about the current
|
|
timezone, as this is necessarily incorrect and racy as the
|
|
kernel has no understanding of DST and similar
|
|
concepts. This hence means FAT timestamps will be always
|
|
considered UTC, similar to what Android is already
|
|
doing. Also, when the RTC is configured to the local time
|
|
(rather than UTC) systemd will never synchronize back to it,
|
|
as this might confuse Windows at a later boot.
|
|
|
|
* systemd-analyze gained a new command "verify" for offline
|
|
validation of unit files.
|
|
|
|
* systemd-networkd gained support for a couple of additional
|
|
settings for bonding networking setups. Also, the metric for
|
|
statically configured routes may now be configured. For
|
|
network interfaces where this is appropriate the peer IP
|
|
address may now be configured.
|
|
|
|
* systemd-networkd's DHCP client will no longer request
|
|
broadcasting by default, as this tripped up some networks.
|
|
For hardware where broadcast is required the feature should
|
|
be switched back on using RequestBroadcast=yes.
|
|
|
|
* systemd-networkd will now set up IPv4LL addresses (when
|
|
enabled) even if DHCP is configured successfully.
|
|
|
|
* udev will now default to respect network device names given
|
|
by the kernel when the kernel indicates that these are
|
|
predictable. This behavior can be tweaked by changing
|
|
NamePolicy= in the relevant .link file.
|
|
|
|
* A new library systemd-terminal has been added that
|
|
implements full TTY stream parsing and rendering. This
|
|
library is supposed to be used later on for implementing a
|
|
full userspace VT subsystem, replacing the current kernel
|
|
implementation.
|
|
|
|
* A new tool systemd-journal-upload has been added to push
|
|
journal data to a remote system running
|
|
systemd-journal-remote.
|
|
|
|
* journald will no longer forward all local data to another
|
|
running syslog daemon. This change has been made because
|
|
rsyslog (which appears to be the most commonly used syslog
|
|
implementation these days) no longer makes use of this, and
|
|
instead pulls the data out of the journal on its own. Since
|
|
forwarding the messages to a non-existent syslog server is
|
|
more expensive than we assumed we have now turned this
|
|
off. If you run a syslog server that is not a recent rsyslog
|
|
version, you have to turn this option on again
|
|
(ForwardToSyslog= in journald.conf).
|
|
|
|
* journald now optionally supports the LZ4 compressor for
|
|
larger journal fields. This compressor should perform much
|
|
better than XZ which was the previous default.
|
|
|
|
* machinectl now shows the IP addresses of local containers,
|
|
if it knows them, plus the interface name of the container.
|
|
|
|
* A new tool "systemd-escape" has been added that makes it
|
|
easy to escape strings to build unit names and similar.
|
|
|
|
* sd_notify() messages may now include a new ERRNO= field
|
|
which is parsed and collected by systemd and shown among the
|
|
"systemctl status" output for a service.
|
|
|
|
* A new component "systemd-firstboot" has been added that
|
|
queries the most basic systemd information (timezone,
|
|
hostname, root password) interactively on first
|
|
boot. Alternatively it may also be used to provision these
|
|
things offline on OS images installed into directories.
|
|
|
|
* The default sysctl.d/ snippets will now set
|
|
|
|
net.ipv4.conf.default.promote_secondaries=1
|
|
|
|
This has the benefit of no flushing secondary IP addresses
|
|
when primary addresses are removed.
|
|
|
|
Contributions from: Ansgar Burchardt, Bastien Nocera, Colin
|
|
Walters, Dan Dedrick, Daniel Buch, Daniel Korostil, Daniel
|
|
Mack, Dan Williams, Dave Reisner, David Herrmann, Denis
|
|
Kenzior, Eelco Dolstra, Eric Cook, Hannes Reinecke, Harald
|
|
Hoyer, Hong Shick Pak, Hui Wang, Jean-André Santoni, Jóhann
|
|
B. Guðmundsson, Jon Severinsson, Karel Zak, Kay Sievers, Kevin
|
|
Wells, Lennart Poettering, Lukas Nykryn, Mantas Mikulėnas,
|
|
Marc-Antoine Perennou, Martin Pitt, Michael Biebl, Michael
|
|
Marineau, Michael Olbrich, Michal Schmidt, Michal Sekletar,
|
|
Miguel Angel Ajo, Mike Gilbert, Olivier Brunel, Robert
|
|
Schiele, Ronny Chevalier, Simon McVittie, Sjoerd Simons, Stef
|
|
Walter, Steven Noonan, Susant Sahani, Tanu Kaskinen, Thomas
|
|
Blume, Thomas Hindoe Paaboel Andersen, Timofey Titovets,
|
|
Tobias Geerinckx-Rice, Tomasz Torcz, Tom Gundersen, Umut
|
|
Tezduyar Lindskog, Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2014-08-19
|
|
|
|
CHANGES WITH 215:
|
|
|
|
* A new tool systemd-sysusers has been added. This tool
|
|
creates system users and groups in /etc/passwd and
|
|
/etc/group, based on static declarative system user/group
|
|
definitions in /usr/lib/sysusers.d/. This is useful to
|
|
enable factory resets and volatile systems that boot up with
|
|
an empty /etc directory, and thus need system users and
|
|
groups created during early boot. systemd now also ships
|
|
with two default sysusers.d/ files for the most basic
|
|
users and groups systemd and the core operating system
|
|
require.
|
|
|
|
* A new tmpfiles snippet has been added that rebuilds the
|
|
essential files in /etc on boot, should they be missing.
|
|
|
|
* A directive for ensuring automatic clean-up of
|
|
/var/cache/man/ has been removed from the default
|
|
configuration. This line should now be shipped by the man
|
|
implementation. The necessary change has been made to the
|
|
man-db implementation. Note that you need to update your man
|
|
implementation to one that ships this line, otherwise no
|
|
automatic clean-up of /var/cache/man will take place.
|
|
|
|
* A new condition ConditionNeedsUpdate= has been added that
|
|
may conditionalize services to only run when /etc or /var
|
|
are "older" than the vendor operating system resources in
|
|
/usr. This is useful for reconstructing or updating /etc
|
|
after an offline update of /usr or a factory reset, on the
|
|
next reboot. Services that want to run once after such an
|
|
update or reset should use this condition and order
|
|
themselves before the new systemd-update-done.service, which
|
|
will mark the two directories as fully updated. A number of
|
|
service files have been added making use of this, to rebuild
|
|
the udev hardware database, the journald message catalog and
|
|
dynamic loader cache (ldconfig). The systemd-sysusers tool
|
|
described above also makes use of this now. With this in
|
|
place it is now possible to start up a minimal operating
|
|
system with /etc empty cleanly. For more information on the
|
|
concepts involved see this recent blog story:
|
|
|
|
http://0pointer.de/blog/projects/stateless.html
|
|
|
|
* A new system group "input" has been introduced, and all
|
|
input device nodes get this group assigned. This is useful
|
|
for system-level software to get access to input devices. It
|
|
complements what is already done for "audio" and "video".
|
|
|
|
* systemd-networkd learnt minimal DHCPv4 server support in
|
|
addition to the existing DHCPv4 client support. It also
|
|
learnt DHCPv6 client and IPv6 Router Solicitation client
|
|
support. The DHCPv4 client gained support for static routes
|
|
passed in from the server. Note that the [DHCPv4] section
|
|
known in older systemd-networkd versions has been renamed to
|
|
[DHCP] and is now also used by the DHCPv6 client. Existing
|
|
.network files using settings of this section should be
|
|
updated, though compatibility is maintained. Optionally, the
|
|
client hostname may now be sent to the DHCP server.
|
|
|
|
* networkd gained support for vxlan virtual networks as well
|
|
as tun/tap and dummy devices.
|
|
|
|
* networkd gained support for automatic allocation of address
|
|
ranges for interfaces from a system-wide pool of
|
|
addresses. This is useful for dynamically managing a large
|
|
number of interfaces with a single network configuration
|
|
file. In particular this is useful to easily assign
|
|
appropriate IP addresses to the veth links of a large number
|
|
of nspawn instances.
|
|
|
|
* RPM macros for processing sysusers, sysctl and binfmt
|
|
drop-in snippets at package installation time have been
|
|
added.
|
|
|
|
* The /etc/os-release file should now be placed in
|
|
/usr/lib/os-release. The old location is automatically
|
|
created as symlink. /usr/lib is the more appropriate
|
|
location of this file, since it shall actually describe the
|
|
vendor operating system shipped in /usr, and not the
|
|
configuration stored in /etc.
|
|
|
|
* .mount units gained a new boolean SloppyOptions= setting
|
|
that maps to mount(8)'s -s option which enables permissive
|
|
parsing of unknown mount options.
|
|
|
|
* tmpfiles learnt a new "L+" directive which creates a symlink
|
|
but (unlike "L") deletes a pre-existing file first, should
|
|
it already exist and not already be the correct
|
|
symlink. Similar, "b+", "c+" and "p+" directives have been
|
|
added as well, which create block and character devices, as
|
|
well as fifos in the filesystem, possibly removing any
|
|
pre-existing files of different types.
|
|
|
|
* For tmpfiles' "L", "L+", "C" and "C+" directives the final
|
|
'argument' field (which so far specified the source to
|
|
symlink/copy the files from) is now optional. If omitted the
|
|
same file os copied from /usr/share/factory/ suffixed by the
|
|
full destination path. This is useful for populating /etc
|
|
with essential files, by copying them from vendor defaults
|
|
shipped in /usr/share/factory/etc.
|
|
|
|
* A new command "systemctl preset-all" has been added that
|
|
applies the service preset settings to all installed unit
|
|
files. A new switch --preset-mode= has been added that
|
|
controls whether only enable or only disable operations
|
|
shall be executed.
|
|
|
|
* A new command "systemctl is-system-running" has been added
|
|
that allows checking the overall state of the system, for
|
|
example whether it is fully up and running.
|
|
|
|
* When the system boots up with an empty /etc, the equivalent
|
|
to "systemctl preset-all" is executed during early boot, to
|
|
make sure all default services are enabled after a factory
|
|
reset.
|
|
|
|
* systemd now contains a minimal preset file that enables the
|
|
most basic services systemd ships by default.
|
|
|
|
* Unit files' [Install] section gained a new DefaultInstance=
|
|
field for defining the default instance to create if a
|
|
template unit is enabled with no instance specified.
|
|
|
|
* A new passive target cryptsetup-pre.target has been added
|
|
that may be used by services that need to make they run and
|
|
finish before the first LUKS cryptographic device is set up.
|
|
|
|
* The /dev/loop-control and /dev/btrfs-control device nodes
|
|
are now owned by the "disk" group by default, opening up
|
|
access to this group.
|
|
|
|
* systemd-coredump will now automatically generate a
|
|
stack trace of all core dumps taking place on the system,
|
|
based on elfutils' libdw library. This stack trace is logged
|
|
to the journal.
|
|
|
|
* systemd-coredump may now optionally store coredumps directly
|
|
on disk (in /var/lib/systemd/coredump, possibly compressed),
|
|
instead of storing them unconditionally in the journal. This
|
|
mode is the new default. A new configuration file
|
|
/etc/systemd/coredump.conf has been added to configure this
|
|
and other parameters of systemd-coredump.
|
|
|
|
* coredumpctl gained a new "info" verb to show details about a
|
|
specific coredump. A new switch "-1" has also been added
|
|
that makes sure to only show information about the most
|
|
recent entry instead of all entries. Also, as the tool is
|
|
generally useful now the "systemd-" prefix of the binary
|
|
name has been removed. Distributions that want to maintain
|
|
compatibility with the old name should add a symlink from
|
|
the old name to the new name.
|
|
|
|
* journald's SplitMode= now defaults to "uid". This makes sure
|
|
that unprivileged users can access their own coredumps with
|
|
coredumpctl without restrictions.
|
|
|
|
* New kernel command line options "systemd.wants=" (for
|
|
pulling an additional unit during boot), "systemd.mask="
|
|
(for masking a specific unit for the boot), and
|
|
"systemd.debug-shell" (for enabling the debug shell on tty9)
|
|
have been added. This is implemented in the new generator
|
|
"systemd-debug-generator".
|
|
|
|
* systemd-nspawn will now by default filter a couple of
|
|
syscalls for containers, among them those required for
|
|
kernel module loading, direct x86 IO port access, swap
|
|
management, and kexec. Most importantly though
|
|
open_by_handle_at() is now prohibited for containers,
|
|
closing a hole similar to a recently discussed vulnerability
|
|
in docker regarding access to files on file hierarchies the
|
|
container should normally not have access to. Note that for
|
|
nspawn we generally make no security claims anyway (and
|
|
this is explicitly documented in the man page), so this is
|
|
just a fix for one of the most obvious problems.
|
|
|
|
* A new man page file-hierarchy(7) has been added that
|
|
contains a minimized, modernized version of the file system
|
|
layout systemd expects, similar in style to the FHS
|
|
specification or hier(5). A new tool systemd-path(1) has
|
|
been added to query many of these paths for the local
|
|
machine and user.
|
|
|
|
* Automatic time-based clean-up of $XDG_RUNTIME_DIR is no
|
|
longer done. Since the directory now has a per-user size
|
|
limit, and is cleaned on logout this appears unnecessary,
|
|
in particular since this now brings the lifecycle of this
|
|
directory closer in line with how IPC objects are handled.
|
|
|
|
* systemd.pc now exports a number of additional directories,
|
|
including $libdir (which is useful to identify the library
|
|
path for the primary architecture of the system), and a
|
|
couple of drop-in directories.
|
|
|
|
* udev's predictable network interface names now use the dev_port
|
|
sysfs attribute, introduced in linux 3.15 instead of dev_id to
|
|
distinguish between ports of the same PCI function. dev_id should
|
|
only be used for ports using the same HW address, hence the need
|
|
for dev_port.
|
|
|
|
* machined has been updated to export the OS version of a
|
|
container (read from /etc/os-release and
|
|
/usr/lib/os-release) on the bus. This is now shown in
|
|
"machinectl status" for a machine.
|
|
|
|
* A new service setting RestartForceExitStatus= has been
|
|
added. If configured to a set of exit signals or process
|
|
return values, the service will be restarted when the main
|
|
daemon process exits with any of them, regardless of the
|
|
Restart= setting.
|
|
|
|
* systemctl's -H switch for connecting to remote systemd
|
|
machines has been extended so that it may be used to
|
|
directly connect to a specific container on the
|
|
host. "systemctl -H root@foobar:waldi" will now connect as
|
|
user "root" to host "foobar", and then proceed directly to
|
|
the container named "waldi". Note that currently you have to
|
|
authenticate as user "root" for this to work, as entering
|
|
containers is a privileged operation.
|
|
|
|
Contributions from: Andreas Henriksson, Benjamin Steinwender,
|
|
Carl Schaefer, Christian Hesse, Colin Ian King, Cristian
|
|
Rodríguez, Daniel Mack, Dave Reisner, David Herrmann, Eugene
|
|
Yakubovich, Filipe Brandenburger, Frederic Crozat, Hristo
|
|
Venev, Jan Engelhardt, Jonathan Boulle, Kay Sievers, Lennart
|
|
Poettering, Luke Shumaker, Mantas Mikulėnas, Marc-Antoine
|
|
Perennou, Marcel Holtmann, Michael Marineau, Michael Olbrich,
|
|
Michał Bartoszkiewicz, Michal Sekletar, Patrik Flykt, Ronan Le
|
|
Martret, Ronny Chevalier, Ruediger Oertel, Steven Noonan,
|
|
Susant Sahani, Thadeu Lima de Souza Cascardo, Thomas Hindoe
|
|
Paaboel Andersen, Tom Gundersen, Tom Hirst, Umut Tezduyar
|
|
Lindskog, Uoti Urpala, Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2014-07-03
|
|
|
|
CHANGES WITH 214:
|
|
|
|
* As an experimental feature, udev now tries to lock the
|
|
disk device node (flock(LOCK_SH|LOCK_NB)) while it
|
|
executes events for the disk or any of its partitions.
|
|
Applications like partitioning programs can lock the
|
|
disk device node (flock(LOCK_EX)) and claim temporary
|
|
device ownership that way; udev will entirely skip all event
|
|
handling for this disk and its partitions. If the disk
|
|
was opened for writing, the close will trigger a partition
|
|
table rescan in udev's "watch" facility, and if needed
|
|
synthesize "change" events for the disk and all its partitions.
|
|
This is now unconditionally enabled, and if it turns out to
|
|
cause major problems, we might turn it on only for specific
|
|
devices, or might need to disable it entirely. Device Mapper
|
|
devices are excluded from this logic.
|
|
|
|
* We temporarily dropped the "-l" switch for fsck invocations,
|
|
since they collide with the flock() logic above. util-linux
|
|
upstream has been changed already to avoid this conflict,
|
|
and we will readd "-l" as soon as util-linux with this
|
|
change has been released.
|
|
|
|
* The dependency on libattr has been removed. Since a long
|
|
time, the extended attribute calls have moved to glibc, and
|
|
libattr is thus unnecessary.
|
|
|
|
* Virtualization detection works without priviliges now. This
|
|
means the systemd-detect-virt binary no longer requires
|
|
CAP_SYS_PTRACE file capabilities, and our daemons can run
|
|
with fewer privileges.
|
|
|
|
* systemd-networkd now runs under its own "systemd-network"
|
|
user. It retains the CAP_NET_ADMIN, CAP_NET_BIND_SERVICE,
|
|
CAP_NET_BROADCAST, CAP_NET_RAW capabilities though, but
|
|
loses the ability to write to files owned by root this way.
|
|
|
|
* Similar, systemd-resolved now runs under its own
|
|
"systemd-resolve" user with no capabilities remaining.
|
|
|
|
* Similar, systemd-bus-proxyd now runs under its own
|
|
"systemd-bus-proxy" user with only CAP_IPC_OWNER remaining.
|
|
|
|
* systemd-networkd gained support for setting up "veth"
|
|
virtual ethernet devices for container connectivity, as well
|
|
as GRE and VTI tunnels.
|
|
|
|
* systemd-networkd will no longer automatically attempt to
|
|
manually load kernel modules necessary for certain tunnel
|
|
transports. Instead, it is assumed the kernel loads them
|
|
automatically when required. This only works correctly on
|
|
very new kernels. On older kernels, please consider adding
|
|
the kernel modules to /etc/modules-load.d/ as a work-around.
|
|
|
|
* The resolv.conf file systemd-resolved generates has been
|
|
moved to /run/systemd/resolve/. If you have a symlink from
|
|
/etc/resolv.conf, it might be necessary to correct it.
|
|
|
|
* Two new service settings, ProtectHome= and ProtectSystem=,
|
|
have been added. When enabled, they will make the user data
|
|
(such as /home) inaccessible or read-only and the system
|
|
(such as /usr) read-only, for specific services. This allows
|
|
very light-weight per-service sandboxing to avoid
|
|
modifications of user data or system files from
|
|
services. These two new switches have been enabled for all
|
|
of systemd's long-running services, where appropriate.
|
|
|
|
* Socket units gained new SocketUser= and SocketGroup=
|
|
settings to set the owner user and group of AF_UNIX sockets
|
|
and FIFOs in the file system.
|
|
|
|
* Socket units gained a new RemoveOnStop= setting. If enabled,
|
|
all FIFOS and sockets in the file system will be removed
|
|
when the specific socket unit is stopped.
|
|
|
|
* Socket units gained a new Symlinks= setting. It takes a list
|
|
of symlinks to create to file system sockets or FIFOs
|
|
created by the specific Unix sockets. This is useful to
|
|
manage symlinks to socket nodes with the same life-cycle as
|
|
the socket itself.
|
|
|
|
* The /dev/log socket and /dev/initctl FIFO have been moved to
|
|
/run, and have been replaced by symlinks. This allows
|
|
connecting to these facilities even if PrivateDevices=yes is
|
|
used for a service (which makes /dev/log itself unavailable,
|
|
but /run is left). This also has the benefit of ensuring
|
|
that /dev only contains device nodes, directories and
|
|
symlinks, and nothing else.
|
|
|
|
* sd-daemon gained two new calls sd_pid_notify() and
|
|
sd_pid_notifyf(). They are similar to sd_notify() and
|
|
sd_notifyf(), but allow overriding of the source PID of
|
|
notification messages if permissions permit this. This is
|
|
useful to send notify messages on behalf of a different
|
|
process (for example, the parent process). The
|
|
systemd-notify tool has been updated to make use of this
|
|
when sending messages (so that notification messages now
|
|
originate from the shell script invoking systemd-notify and
|
|
not the systemd-notify process itself. This should minimize
|
|
a race where systemd fails to associate notification
|
|
messages to services when the originating process already
|
|
vanished.
|
|
|
|
* A new "on-abnormal" setting for Restart= has been added. If
|
|
set, it will result in automatic restarts on all "abnormal"
|
|
reasons for a process to exit, which includes unclean
|
|
signals, core dumps, timeouts and watchdog timeouts, but
|
|
does not include clean and unclean exit codes or clean
|
|
signals. Restart=on-abnormal is an alternative for
|
|
Restart=on-failure for services that shall be able to
|
|
terminate and avoid restarts on certain errors, by
|
|
indicating so with an unclean exit code. Restart=on-failure
|
|
or Restart=on-abnormal is now the recommended setting for
|
|
all long-running services.
|
|
|
|
* If the InaccessibleDirectories= service setting points to a
|
|
mount point (or if there are any submounts contained within
|
|
it), it is now attempted to completely unmount it, to make
|
|
the file systems truly unavailable for the respective
|
|
service.
|
|
|
|
* The ReadOnlyDirectories= service setting and
|
|
systemd-nspawn's --read-only parameter are now recursively
|
|
applied to all submounts, too.
|
|
|
|
* Mount units may now be created transiently via the bus APIs.
|
|
|
|
* The support for SysV and LSB init scripts has been removed
|
|
from the systemd daemon itself. Instead, it is now
|
|
implemented as a generator that creates native systemd units
|
|
from these scripts when needed. This enables us to remove a
|
|
substantial amount of legacy code from PID 1, following the
|
|
fact that many distributions only ship a very small number
|
|
of LSB/SysV init scripts nowadays.
|
|
|
|
* Priviliged Xen (dom0) domains are not considered
|
|
virtualization anymore by the virtualization detection
|
|
logic. After all, they generally have unrestricted access to
|
|
the hardware and usually are used to manage the unprivileged
|
|
(domU) domains.
|
|
|
|
* systemd-tmpfiles gained a new "C" line type, for copying
|
|
files or entire directories.
|
|
|
|
* systemd-tmpfiles "m" lines are now fully equivalent to "z"
|
|
lines. So far, they have been non-globbing versions of the
|
|
latter, and have thus been redundant. In future, it is
|
|
recommended to only use "z". "m" has hence been removed
|
|
from the documentation, even though it stays supported.
|
|
|
|
* A tmpfiles snippet to recreate the most basic structure in
|
|
/var has been added. This is enough to create the /var/run →
|
|
/run symlink and create a couple of structural
|
|
directories. This allows systems to boot up with an empty or
|
|
volatile /var. Of course, while with this change, the core OS
|
|
now is capable with dealing with a volatile /var, not all
|
|
user services are ready for it. However, we hope that sooner
|
|
or later, many service daemons will be changed upstream so
|
|
that they are able to automatically create their necessary
|
|
directories in /var at boot, should they be missing. This is
|
|
the first step to allow state-less systems that only require
|
|
the vendor image for /usr to boot.
|
|
|
|
* systemd-nspawn has gained a new --tmpfs= switch to mount an
|
|
empty tmpfs instance to a specific directory. This is
|
|
particularly useful for making use of the automatic
|
|
reconstruction of /var (see above), by passing --tmpfs=/var.
|
|
|
|
* Access modes specified in tmpfiles snippets may now be
|
|
prefixed with "~", which indicates that they shall be masked
|
|
by whether the existing file or directory is currently
|
|
writable, readable or executable at all. Also, if specified,
|
|
the sgid/suid/sticky bits will be masked for all
|
|
non-directories.
|
|
|
|
* A new passive target unit "network-pre.target" has been
|
|
added which is useful for services that shall run before any
|
|
network is configured, for example firewall scripts.
|
|
|
|
* The "floppy" group that previously owned the /dev/fd*
|
|
devices is no longer used. The "disk" group is now used
|
|
instead. Distributions should probably deprecate usage of
|
|
this group.
|
|
|
|
Contributions from: Camilo Aguilar, Christian Hesse, Colin Ian
|
|
King, Cristian Rodríguez, Daniel Buch, Dave Reisner, David
|
|
Strauss, Denis Tikhomirov, John, Jonathan Liu, Kay Sievers,
|
|
Lennart Poettering, Mantas Mikulėnas, Mark Eichin, Ronny
|
|
Chevalier, Susant Sahani, Thomas Blume, Thomas Hindoe Paaboel
|
|
Andersen, Tom Gundersen, Umut Tezduyar Lindskog, Zbigniew
|
|
Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2014-06-11
|
|
|
|
CHANGES WITH 213:
|
|
|
|
* A new "systemd-timesyncd" daemon has been added for
|
|
synchronizing the system clock across the network. It
|
|
implements an SNTP client. In contrast to NTP
|
|
implementations such as chrony or the NTP reference server,
|
|
this only implements a client side, and does not bother with
|
|
the full NTP complexity, focusing only on querying time from
|
|
one remote server and synchronizing the local clock to
|
|
it. Unless you intend to serve NTP to networked clients or
|
|
want to connect to local hardware clocks, this simple NTP
|
|
client should be more than appropriate for most
|
|
installations. The daemon runs with minimal privileges, and
|
|
has been hooked up with networkd to only operate when
|
|
network connectivity is available. The daemon saves the
|
|
current clock to disk every time a new NTP sync has been
|
|
acquired, and uses this to possibly correct the system clock
|
|
early at bootup, in order to accommodate for systems that
|
|
lack an RTC such as the Raspberry Pi and embedded devices,
|
|
and to make sure that time monotonically progresses on these
|
|
systems, even if it is not always correct. To make use of
|
|
this daemon, a new system user and group "systemd-timesync"
|
|
needs to be created on installation of systemd.
|
|
|
|
* The queue "seqnum" interface of libudev has been disabled, as
|
|
it was generally incompatible with device namespacing as
|
|
sequence numbers of devices go "missing" if the devices are
|
|
part of a different namespace.
|
|
|
|
* "systemctl list-timers" and "systemctl list-sockets" gained
|
|
a --recursive switch for showing units of these types also
|
|
for all local containers, similar in style to the already
|
|
supported --recursive switch for "systemctl list-units".
|
|
|
|
* A new RebootArgument= setting has been added for service
|
|
units, which may be used to specify a kernel reboot argument
|
|
to use when triggering reboots with StartLimitAction=.
|
|
|
|
* A new FailureAction= setting has been added for service
|
|
units which may be used to specify an operation to trigger
|
|
when a service fails. This works similarly to
|
|
StartLimitAction=, but unlike it, controls what is done
|
|
immediately rather than only after several attempts to
|
|
restart the service in question.
|
|
|
|
* hostnamed got updated to also expose the kernel name,
|
|
release, and version on the bus. This is useful for
|
|
executing commands like hostnamectl with the -H switch.
|
|
systemd-analyze makes use of this to properly display
|
|
details when running non-locally.
|
|
|
|
* The bootchart tool can now show cgroup information in the
|
|
graphs it generates.
|
|
|
|
* The CFS CPU quota cgroup attribute is now exposed for
|
|
services. The new CPUQuota= switch has been added for this
|
|
which takes a percentage value. Setting this will have the
|
|
result that a service may never get more CPU time than the
|
|
specified percentage, even if the machine is otherwise idle.
|
|
|
|
* systemd-networkd learned IPIP and SIT tunnel support.
|
|
|
|
* LSB init scripts exposing a dependency on $network will now
|
|
get a dependency on network-online.target rather than simply
|
|
network.target. This should bring LSB handling closer to
|
|
what it was on SysV systems.
|
|
|
|
* A new fsck.repair= kernel option has been added to control
|
|
how fsck shall deal with unclean file systems at boot.
|
|
|
|
* The (.ini) configuration file parser will now silently
|
|
ignore sections whose name begins with "X-". This may be
|
|
used to maintain application-specific extension sections in unit
|
|
files.
|
|
|
|
* machined gained a new API to query the IP addresses of
|
|
registered containers. "machinectl status" has been updated
|
|
to show these addresses in its output.
|
|
|
|
* A new call sd_uid_get_display() has been added to the
|
|
sd-login APIs for querying the "primary" session of a
|
|
user. The "primary" session of the user is elected from the
|
|
user's sessions and generally a graphical session is
|
|
preferred over a text one.
|
|
|
|
* A minimal systemd-resolved daemon has been added. It
|
|
currently simply acts as a companion to systemd-networkd and
|
|
manages resolv.conf based on per-interface DNS
|
|
configuration, possibly supplied via DHCP. In the long run
|
|
we hope to extend this into a local DNSSEC enabled DNS and
|
|
mDNS cache.
|
|
|
|
* The systemd-networkd-wait-online tool is now enabled by
|
|
default. It will delay network-online.target until a network
|
|
connection has been configured. The tool primarily integrates
|
|
with networkd, but will also make a best effort to make sense
|
|
of network configuration performed in some other way.
|
|
|
|
* Two new service options StartupCPUShares= and
|
|
StartupBlockIOWeight= have been added that work similarly to
|
|
CPUShares= and BlockIOWeight= however only apply during
|
|
system startup. This is useful to prioritize certain services
|
|
differently during bootup than during normal runtime.
|
|
|
|
* hostnamed has been changed to prefer the statically
|
|
configured hostname in /etc/hostname (unless set to
|
|
'localhost' or empty) over any dynamic one supplied by
|
|
dhcp. With this change, the rules for picking the hostname
|
|
match more closely the rules of other configuration settings
|
|
where the local administrator's configuration in /etc always
|
|
overrides any other settings.
|
|
|
|
Contributions fron: Ali H. Caliskan, Alison Chaiken, Bas van
|
|
den Berg, Brandon Philips, Cristian Rodríguez, Daniel Buch,
|
|
Dan Kilman, Dave Reisner, David Härdeman, David Herrmann,
|
|
David Strauss, Dimitris Spingos, Djalal Harouni, Eelco
|
|
Dolstra, Evan Nemerson, Florian Albrechtskirchinger, Greg
|
|
Kroah-Hartman, Harald Hoyer, Holger Hans Peter Freyther, Jan
|
|
Engelhardt, Jani Nikula, Jason St. John, Jeffrey Clark,
|
|
Jonathan Boulle, Kay Sievers, Lennart Poettering, Lukas
|
|
Nykryn, Lukasz Skalski, Łukasz Stelmach, Mantas Mikulėnas,
|
|
Marcel Holtmann, Martin Pitt, Matthew Monaco, Michael
|
|
Marineau, Michael Olbrich, Michal Sekletar, Mike Gilbert, Nis
|
|
Martensen, Patrik Flykt, Philip Lorenz, poma, Ray Strode,
|
|
Reyad Attiyat, Robert Milasan, Scott Thrasher, Stef Walter,
|
|
Steven Siloti, Susant Sahani, Tanu Kaskinen, Thomas Bächler,
|
|
Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar
|
|
Lindskog, WaLyong Cho, Will Woods, Zbigniew
|
|
Jędrzejewski-Szmek
|
|
|
|
-- Beijing, 2014-05-28
|
|
|
|
CHANGES WITH 212:
|
|
|
|
* When restoring the screen brightness at boot, stay away from
|
|
the darkest setting or from the lowest 5% of the available
|
|
range, depending on which is the larger value of both. This
|
|
should effectively protect the user from rebooting into a
|
|
black screen, should the brightness have been set to minimum
|
|
by accident.
|
|
|
|
* sd-login gained a new sd_machine_get_class() call to
|
|
determine the class ("vm" or "container") of a machine
|
|
registered with machined.
|
|
|
|
* sd-login gained new calls
|
|
sd_peer_get_{session,owner_uid,unit,user_unit,slice,machine_name}(),
|
|
to query the identity of the peer of a local AF_UNIX
|
|
connection. They operate similarly to their sd_pid_get_xyz()
|
|
counterparts.
|
|
|
|
* PID 1 will now maintain a system-wide system state engine
|
|
with the states "starting", "running", "degraded",
|
|
"maintenance", "stopping". These states are bound to system
|
|
startup, normal runtime, runtime with at least one failed
|
|
service, rescue/emergency mode and system shutdown. This
|
|
state is shown in the "systemctl status" output when no unit
|
|
name is passed. It is useful to determine system state, in
|
|
particularly when doing so for many systems or containers at
|
|
once.
|
|
|
|
* A new command "list-machines" has been added to "systemctl"
|
|
that lists all local OS containers and shows their system
|
|
state (see above), if systemd runs inside of them.
|
|
|
|
* systemctl gained a new "-r" switch to recursively enumerate
|
|
units on all local containers, when used with the
|
|
"list-unit" command (which is the default one that is
|
|
executed when no parameters are specified).
|
|
|
|
* The GPT automatic partition discovery logic will now honour
|
|
two GPT partition flags: one may be set on a partition to
|
|
cause it to be mounted read-only, and the other may be set
|
|
on a partition to ignore it during automatic discovery.
|
|
|
|
* Two new GPT type UUIDs have been added for automatic root
|
|
partition discovery, for 32-bit and 64-bit ARM. This is not
|
|
particularly useful for discovering the root directory on
|
|
these architectures during bare-metal boots (since UEFI is
|
|
not common there), but still very useful to allow booting of
|
|
ARM disk images in nspawn with the -i option.
|
|
|
|
* MAC addresses of interfaces created with nspawn's
|
|
--network-interface= switch will now be generated from the
|
|
machine name, and thus be stable between multiple invocations
|
|
of the container.
|
|
|
|
* logind will now automatically remove all IPC objects owned
|
|
by a user if she or he fully logs out. This makes sure that
|
|
users who are logged out cannot continue to consume IPC
|
|
resources. This covers SysV memory, semaphores and message
|
|
queues as well as POSIX shared memory and message
|
|
queues. Traditionally, SysV and POSIX IPC had no life-cycle
|
|
limits. With this functionality, that is corrected. This may
|
|
be turned off by using the RemoveIPC= switch of logind.conf.
|
|
|
|
* The systemd-machine-id-setup and tmpfiles tools gained a
|
|
--root= switch to operate on a specific root directory,
|
|
instead of /.
|
|
|
|
* journald can now forward logged messages to the TTYs of all
|
|
logged in users ("wall"). This is the default for all
|
|
emergency messages now.
|
|
|
|
* A new tool systemd-journal-remote has been added to stream
|
|
journal log messages across the network.
|
|
|
|
* /sys/fs/cgroup/ is now mounted read-only after all cgroup
|
|
controller trees are mounted into it. Note that the
|
|
directories mounted beneath it are not read-only. This is a
|
|
security measure and is particularly useful because glibc
|
|
actually includes a search logic to pick any tmpfs it can
|
|
find to implement shm_open() if /dev/shm is not available
|
|
(which it might very well be in namespaced setups).
|
|
|
|
* machinectl gained a new "poweroff" command to cleanly power
|
|
down a local OS container.
|
|
|
|
* The PrivateDevices= unit file setting will now also drop the
|
|
CAP_MKNOD capability from the capability bound set, and
|
|
imply DevicePolicy=closed.
|
|
|
|
* PrivateDevices=, PrivateNetwork= and PrivateTmp= is now used
|
|
comprehensively on all long-running systemd services where
|
|
this is appropriate.
|
|
|
|
* systemd-udevd will now run in a disassociated mount
|
|
namespace. To mount directories from udev rules, make sure to
|
|
pull in mount units via SYSTEMD_WANTS properties.
|
|
|
|
* The kdbus support gained support for uploading policy into
|
|
the kernel. sd-bus gained support for creating "monitoring"
|
|
connections that can eavesdrop into all bus communication
|
|
for debugging purposes.
|
|
|
|
* Timestamps may now be specified in seconds since the UNIX
|
|
epoch Jan 1st, 1970 by specifying "@" followed by the value
|
|
in seconds.
|
|
|
|
* Native tcpwrap support in systemd has been removed. tcpwrap
|
|
is old code, not really maintained anymore and has serious
|
|
shortcomings, and better options such as firewalls
|
|
exist. For setups that require tcpwrap usage, please
|
|
consider invoking your socket-activated service via tcpd,
|
|
like on traditional inetd.
|
|
|
|
* A new system.conf configuration option
|
|
DefaultTimerAccuracySec= has been added that controls the
|
|
default AccuracySec= setting of .timer units.
|
|
|
|
* Timer units gained a new WakeSystem= switch. If enabled,
|
|
timers configured this way will cause the system to resume
|
|
from system suspend (if the system supports that, which most
|
|
do these days).
|
|
|
|
* Timer units gained a new Persistent= switch. If enabled,
|
|
timers configured this way will save to disk when they have
|
|
been last triggered. This information is then used on next
|
|
reboot to possible execute overdue timer events, that
|
|
could not take place because the system was powered off.
|
|
This enables simple anacron-like behaviour for timer units.
|
|
|
|
* systemctl's "list-timers" will now also list the time a
|
|
timer unit was last triggered in addition to the next time
|
|
it will be triggered.
|
|
|
|
* systemd-networkd will now assign predictable IPv4LL
|
|
addresses to its local interfaces.
|
|
|
|
Contributions from: Brandon Philips, Daniel Buch, Daniel Mack,
|
|
Dave Reisner, David Herrmann, Gerd Hoffmann, Greg
|
|
Kroah-Hartman, Hendrik Brueckner, Jason St. John, Josh
|
|
Triplett, Kay Sievers, Lennart Poettering, Marc-Antoine
|
|
Perennou, Michael Marineau, Michael Olbrich, Miklos Vajna,
|
|
Patrik Flykt, poma, Sebastian Thorarensen, Thomas Bächler,
|
|
Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom Gundersen,
|
|
Umut Tezduyar Lindskog, Wieland Hoffmann, Zbigniew
|
|
Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2014-03-25
|
|
|
|
CHANGES WITH 211:
|
|
|
|
* A new unit file setting RestrictAddressFamilies= has been
|
|
added to restrict which socket address families unit
|
|
processes gain access to. This takes address family names
|
|
like "AF_INET" or "AF_UNIX", and is useful to minimize the
|
|
attack surface of services via exotic protocol stacks. This
|
|
is built on seccomp system call filters.
|
|
|
|
* Two new unit file settings RuntimeDirectory= and
|
|
RuntimeDirectoryMode= have been added that may be used to
|
|
manage a per-daemon runtime directories below /run. This is
|
|
an alternative for setting up directory permissions with
|
|
tmpfiles snippets, and has the advantage that the runtime
|
|
directory's lifetime is bound to the daemon runtime and that
|
|
the daemon starts up with an empty directory each time. This
|
|
is particularly useful when writing services that drop
|
|
privileges using the User= or Group= setting.
|
|
|
|
* The DeviceAllow= unit setting now supports globbing for
|
|
matching against device group names.
|
|
|
|
* The systemd configuration file system.conf gained new
|
|
settings DefaultCPUAccounting=, DefaultBlockIOAccounting=,
|
|
DefaultMemoryAccounting= to globally turn on/off accounting
|
|
for specific resources (cgroups) for all units. These
|
|
settings may still be overridden individually in each unit
|
|
though.
|
|
|
|
* systemd-gpt-auto-generator is now able to discover /srv and
|
|
root partitions in addition to /home and swap partitions. It
|
|
also supports LUKS-encrypted partitions now. With this in
|
|
place, automatic discovery of partitions to mount following
|
|
the Discoverable Partitions Specification
|
|
(http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec)
|
|
is now a lot more complete. This allows booting without
|
|
/etc/fstab and without root= on the kernel command line on
|
|
systems prepared appropriately.
|
|
|
|
* systemd-nspawn gained a new --image= switch which allows
|
|
booting up disk images and Linux installations on any block
|
|
device that follow the Discoverable Partitions Specification
|
|
(see above). This means that installations made with
|
|
appropriately updated installers may now be started and
|
|
deployed using container managers, completely
|
|
unmodified. (We hope that libvirt-lxc will add support for
|
|
this feature soon, too.)
|
|
|
|
* systemd-nspawn gained a new --network-macvlan= setting to
|
|
set up a private macvlan interface for the
|
|
container. Similarly, systemd-networkd gained a new
|
|
Kind=macvlan setting in .netdev files.
|
|
|
|
* systemd-networkd now supports configuring local addresses
|
|
using IPv4LL.
|
|
|
|
* A new tool systemd-network-wait-online has been added to
|
|
synchronously wait for network connectivity using
|
|
systemd-networkd.
|
|
|
|
* The sd-bus.h bus API gained a new sd_bus_track object for
|
|
tracking the life-cycle of bus peers. Note that sd-bus.h is
|
|
still not a public API though (unless you specify
|
|
--enable-kdbus on the configure command line, which however
|
|
voids your warranty and you get no API stability guarantee).
|
|
|
|
* The $XDG_RUNTIME_DIR runtime directories for each user are
|
|
now individual tmpfs instances, which has the benefit of
|
|
introducing separate pools for each user, with individual
|
|
size limits, and thus making sure that unprivileged clients
|
|
can no longer negatively impact the system or other users by
|
|
filling up their $XDG_RUNTIME_DIR. A new logind.conf setting
|
|
RuntimeDirectorySize= has been introduced that allows
|
|
controlling the default size limit for all users. It
|
|
defaults to 10% of the available physical memory. This is no
|
|
replacement for quotas on tmpfs though (which the kernel
|
|
still does not support), as /dev/shm and /tmp are still
|
|
shared resources used by both the system and unprivileged
|
|
users.
|
|
|
|
* logind will now automatically turn off automatic suspending
|
|
on laptop lid close when more than one display is
|
|
connected. This was previously expected to be implemented
|
|
individually in desktop environments (such as GNOME),
|
|
however has been added to logind now, in order to fix a
|
|
boot-time race where a desktop environment might not have
|
|
been started yet and thus not been able to take an inhibitor
|
|
lock at the time where logind already suspends the system
|
|
due to a closed lid.
|
|
|
|
* logind will now wait at least 30s after each system
|
|
suspend/resume cycle, and 3min after system boot before
|
|
suspending the system due to a closed laptop lid. This
|
|
should give USB docking stations and similar enough time to
|
|
be probed and configured after system resume and boot in
|
|
order to then act as suspend blocker.
|
|
|
|
* systemd-run gained a new --property= setting which allows
|
|
initialization of resource control properties (and others)
|
|
for the created scope or service unit. Example: "systemd-run
|
|
--property=BlockIOWeight=10 updatedb" may be used to run
|
|
updatedb at a low block IO scheduling weight.
|
|
|
|
* systemd-run's --uid=, --gid=, --setenv=, --setenv= switches
|
|
now also work in --scope mode.
|
|
|
|
* When systemd is compiled with kdbus support, basic support
|
|
for enforced policies is now in place. (Note that enabling
|
|
kdbus still voids your warranty and no API compatibility
|
|
promises are made.)
|
|
|
|
Contributions from: Andrey Borzenkov, Ansgar Burchardt, Armin
|
|
K., Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
|
|
Harald Hoyer, Henrik Grindal Bakken, Jasper St. Pierre, Kay
|
|
Sievers, Kieran Clancy, Lennart Poettering, Lukas Nykryn,
|
|
Mantas Mikulėnas, Marcel Holtmann, Mark Oteiza, Martin Pitt,
|
|
Mike Gilbert, Peter Rajnoha, poma, Samuli Suominen, Stef
|
|
Walter, Susant Sahani, Tero Roponen, Thomas Andersen, Thomas
|
|
Bächler, Thomas Hindoe Paaboel Andersen, Tomasz Torcz, Tom
|
|
Gundersen, Umut Tezduyar Lindskog, Uoti Urpala, Zachary Cook,
|
|
Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2014-03-12
|
|
|
|
CHANGES WITH 210:
|
|
|
|
* systemd will now relabel /dev after loading the SMACK policy
|
|
according to SMACK rules.
|
|
|
|
* A new unit file option AppArmorProfile= has been added to
|
|
set the AppArmor profile for the processes of a unit.
|
|
|
|
* A new condition check ConditionArchitecture= has been added
|
|
to conditionalize units based on the system architecture, as
|
|
reported by uname()'s "machine" field.
|
|
|
|
* systemd-networkd now supports matching on the system
|
|
virtualization, architecture, kernel command line, host name
|
|
and machine ID.
|
|
|
|
* logind is now a lot more aggressive when suspending the
|
|
machine due to a closed laptop lid. Instead of acting only
|
|
on the lid close action, it will continuously watch the lid
|
|
status and act on it. This is useful for laptops where the
|
|
power button is on the outside of the chassis so that it can
|
|
be reached without opening the lid (such as the Lenovo
|
|
Yoga). On those machines, logind will now immediately
|
|
re-suspend the machine if the power button has been
|
|
accidentally pressed while the laptop was suspended and in a
|
|
backpack or similar.
|
|
|
|
* logind will now watch SW_DOCK switches and inhibit reaction
|
|
to the lid switch if it is pressed. This means that logind
|
|
will not suspend the machine anymore if the lid is closed
|
|
and the system is docked, if the laptop supports SW_DOCK
|
|
notifications via the input layer. Note that ACPI docking
|
|
stations do not generate this currently. Also note that this
|
|
logic is usually not fully sufficient and Desktop
|
|
Environments should take a lid switch inhibitor lock when an
|
|
external display is connected, as systemd will not watch
|
|
this on its own.
|
|
|
|
* nspawn will now make use of the devices cgroup controller by
|
|
default, and only permit creation of and access to the usual
|
|
API device nodes like /dev/null or /dev/random, as well as
|
|
access to (but not creation of) the pty devices.
|
|
|
|
* We will now ship a default .network file for
|
|
systemd-networkd that automatically configures DHCP for
|
|
network interfaces created by nspawn's --network-veth or
|
|
--network-bridge= switches.
|
|
|
|
* systemd will now understand the usual M, K, G, T suffixes
|
|
according to SI conventions (i.e. to the base 1000) when
|
|
referring to throughput and hardware metrics. It will stay
|
|
with IEC conventions (i.e. to the base 1024) for software
|
|
metrics, according to what is customary according to
|
|
Wikipedia. We explicitly document which base applies for
|
|
each configuration option.
|
|
|
|
* The DeviceAllow= setting in unit files now supports a syntax
|
|
to whitelist an entire group of devices node majors at once,
|
|
based on the /proc/devices listing. For example, with the
|
|
string "char-pts", it is now possible to whitelist all
|
|
current and future pseudo-TTYs at once.
|
|
|
|
* sd-event learned a new "post" event source. Event sources of
|
|
this type are triggered by the dispatching of any event
|
|
source of a type that is not "post". This is useful for
|
|
implementing clean-up and check event sources that are
|
|
triggered by other work being done in the program.
|
|
|
|
* systemd-networkd is no longer statically enabled, but uses
|
|
the usual [Install] sections so that it can be
|
|
enabled/disabled using systemctl. It still is enabled by
|
|
default however.
|
|
|
|
* When creating a veth interface pair with systemd-nspawn, the
|
|
host side will now be prefixed with "vb-" if
|
|
--network-bridge= is used, and with "ve-" if --network-veth
|
|
is used. This way, it is easy to distinguish these cases on
|
|
the host, for example to apply different configuration to
|
|
them with systemd-networkd.
|
|
|
|
* The compatibility libraries for libsystemd-journal.so,
|
|
libsystem-id128.so, libsystemd-login.so and
|
|
libsystemd-daemon.so do not make use of IFUNC
|
|
anymore. Instead, we now build libsystemd.so multiple times
|
|
under these alternative names. This means that the footprint
|
|
is drastically increased, but given that these are
|
|
transitional compatibility libraries, this should not matter
|
|
much. This change has been made necessary to support the ARM
|
|
platform for these compatibility libraries, as the ARM
|
|
toolchain is not really at the same level as the toolchain
|
|
for other architectures like x86 and does not support
|
|
IFUNC. Please make sure to use --enable-compat-libs only
|
|
during a transitional period!
|
|
|
|
Contributions from: Andreas Fuchs, Armin K., Colin Walters,
|
|
Daniel Mack, Dave Reisner, David Herrmann, Djalal Harouni,
|
|
Holger Schurig, Jason A. Donenfeld, Jason St. John, Jasper
|
|
St. Pierre, Kay Sievers, Lennart Poettering, Łukasz Stelmach,
|
|
Marcel Holtmann, Michael Scherer, Michal Sekletar, Mike
|
|
Gilbert, Samuli Suominen, Thomas Bächler, Thomas Hindoe
|
|
Paaboel Andersen, Tom Gundersen, Umut Tezduyar Lindskog,
|
|
Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2014-02-24
|
|
|
|
CHANGES WITH 209:
|
|
|
|
* A new component "systemd-networkd" has been added that can
|
|
be used to configure local network interfaces statically or
|
|
via DHCP. It is capable of bringing up bridges, VLANs, and
|
|
bonding. Currently, no hook-ups for interactive network
|
|
configuration are provided. Use this for your initrd,
|
|
container, embedded, or server setup if you need a simple,
|
|
yet powerful, network configuration solution. This
|
|
configuration subsystem is quite nifty, as it allows wildcard
|
|
hotplug matching in interfaces. For example, with a single
|
|
configuration snippet, you can configure that all Ethernet
|
|
interfaces showing up are automatically added to a bridge,
|
|
or similar. It supports link-sensing and more.
|
|
|
|
* A new tool "systemd-socket-proxyd" has been added which can
|
|
act as a bidirectional proxy for TCP sockets. This is
|
|
useful for adding socket activation support to services that
|
|
do not actually support socket activation, including virtual
|
|
machines and the like.
|
|
|
|
* Add a new tool to save/restore rfkill state on
|
|
shutdown/boot.
|
|
|
|
* Save/restore state of keyboard backlights in addition to
|
|
display backlights on shutdown/boot.
|
|
|
|
* udev learned a new SECLABEL{} construct to label device
|
|
nodes with a specific security label when they appear. For
|
|
now, only SECLABEL{selinux} is supported, but the syntax is
|
|
prepared for additional security frameworks.
|
|
|
|
* udev gained a new scheme to configure link-level attributes
|
|
from files in /etc/systemd/network/*.link. These files can
|
|
match against MAC address, device path, driver name and type,
|
|
and will apply attributes like the naming policy, link speed,
|
|
MTU, duplex settings, Wake-on-LAN settings, MAC address, MAC
|
|
address assignment policy (randomized, ...).
|
|
|
|
* The configuration of network interface naming rules for
|
|
"permanent interface names" has changed: a new NamePolicy=
|
|
setting in the [Link] section of .link files determines the
|
|
priority of possible naming schemes (onboard, slot, mac,
|
|
path). The default value of this setting is determined by
|
|
/usr/lib/net/links/99-default.link. Old
|
|
80-net-name-slot.rules udev configuration file has been
|
|
removed, so local configuration overriding this file should
|
|
be adapated to override 99-default.link instead.
|
|
|
|
* When the User= switch is used in a unit file, also
|
|
initialize $SHELL= based on the user database entry.
|
|
|
|
* systemd no longer depends on libdbus. All communication is
|
|
now done with sd-bus, systemd's low-level bus library
|
|
implementation.
|
|
|
|
* kdbus support has been added to PID 1 itself. When kdbus is
|
|
enabled, this causes PID 1 to set up the system bus and
|
|
enable support for a new ".busname" unit type that
|
|
encapsulates bus name activation on kdbus. It works a little
|
|
bit like ".socket" units, except for bus names. A new
|
|
generator has been added that converts classic dbus1 service
|
|
activation files automatically into native systemd .busname
|
|
and .service units.
|
|
|
|
* sd-bus: add a light-weight vtable implementation that allows
|
|
defining objects on the bus with a simple static const
|
|
vtable array of its methods, signals and properties.
|
|
|
|
* systemd will not generate or install static dbus
|
|
introspection data anymore to /usr/share/dbus-1/interfaces,
|
|
as the precise format of these files is unclear, and
|
|
nothing makes use of it.
|
|
|
|
* A proxy daemon is now provided to proxy clients connecting
|
|
via classic D-Bus AF_UNIX sockets to kdbus, to provide full
|
|
compatibility with classic D-Bus.
|
|
|
|
* A bus driver implementation has been added that supports the
|
|
classic D-Bus bus driver calls on kdbus, also for
|
|
compatibility purposes.
|
|
|
|
* A new API "sd-event.h" has been added that implements a
|
|
minimal event loop API built around epoll. It provides a
|
|
couple of features that direct epoll usage is lacking:
|
|
prioritization of events, scales to large numbers of timer
|
|
events, per-event timer slack (accuracy), system-wide
|
|
coalescing of timer events, exit handlers, watchdog
|
|
supervision support using systemd's sd_notify() API, child
|
|
process handling.
|
|
|
|
* A new API "sd-rntl.h" has been added that provides an API
|
|
around the route netlink interface of the kernel, similar in
|
|
style to "sd-bus.h".
|
|
|
|
* A new API "sd-dhcp-client.h" has been added that provides a
|
|
small DHCPv4 client-side implementation. This is used by
|
|
"systemd-networkd".
|
|
|
|
* There is a new kernel command line option
|
|
"systemd.restore_state=0|1". When set to "0", none of the
|
|
systemd tools will restore saved runtime state to hardware
|
|
devices. More specifically, the rfkill and backlight states
|
|
are not restored.
|
|
|
|
* The FsckPassNo= compatibility option in mount/service units
|
|
has been removed. The fstab generator will now add the
|
|
necessary dependencies automatically, and does not require
|
|
PID1's support for that anymore.
|
|
|
|
* journalctl gained a new switch, --list-boots, that lists
|
|
recent boots with their times and boot IDs.
|
|
|
|
* The various tools like systemctl, loginctl, timedatectl,
|
|
busctl, systemd-run, ... have gained a new switch "-M" to
|
|
connect to a specific, local OS container (as direct
|
|
connection, without requiring SSH). This works on any
|
|
container that is registered with machined, such as those
|
|
created by libvirt-lxc or nspawn.
|
|
|
|
* systemd-run and systemd-analyze also gained support for "-H"
|
|
to connect to remote hosts via SSH. This is particularly
|
|
useful for systemd-run because it enables queuing of jobs
|
|
onto remote systems.
|
|
|
|
* machinectl gained a new command "login" to open a getty
|
|
login in any local container. This works with any container
|
|
that is registered with machined (such as those created by
|
|
libvirt-lxc or nspawn), and which runs systemd inside.
|
|
|
|
* machinectl gained a new "reboot" command that may be used to
|
|
trigger a reboot on a specific container that is registered
|
|
with machined. This works on any container that runs an init
|
|
system of some kind.
|
|
|
|
* systemctl gained a new "list-timers" command to print a nice
|
|
listing of installed timer units with the times they elapse
|
|
next.
|
|
|
|
* Alternative reboot() parameters may now be specified on the
|
|
"systemctl reboot" command line and are passed to the
|
|
reboot() system call.
|
|
|
|
* systemctl gained a new --job-mode= switch to configure the
|
|
mode to queue a job with. This is a more generic version of
|
|
--fail, --irreversible, and --ignore-dependencies, which are
|
|
still available but not advertised anymore.
|
|
|
|
* /etc/systemd/system.conf gained new settings to configure
|
|
various default timeouts of units, as well as the default
|
|
start limit interval and burst. These may still be overridden
|
|
within each Unit.
|
|
|
|
* PID1 will now export on the bus profile data of the security
|
|
policy upload process (such as the SELinux policy upload to
|
|
the kernel).
|
|
|
|
* journald: when forwarding logs to the console, include
|
|
timestamps (following the setting in
|
|
/sys/module/printk/parameters/time).
|
|
|
|
* OnCalendar= in timer units now understands the special
|
|
strings "yearly" and "annually". (Both are equivalent)
|
|
|
|
* The accuracy of timer units is now configurable with the new
|
|
AccuracySec= setting. It defaults to 1min.
|
|
|
|
* A new dependency type JoinsNamespaceOf= has been added that
|
|
allows running two services within the same /tmp and network
|
|
namespace, if PrivateNetwork= or PrivateTmp= are used.
|
|
|
|
* A new command "cat" has been added to systemctl. It outputs
|
|
the original unit file of a unit, and concatenates the
|
|
contents of additional "drop-in" unit file snippets, so that
|
|
the full configuration is shown.
|
|
|
|
* systemctl now supports globbing on the various "list-xyz"
|
|
commands, like "list-units" or "list-sockets", as well as on
|
|
those commands which take multiple unit names.
|
|
|
|
* journalctl's --unit= switch gained support for globbing.
|
|
|
|
* All systemd daemons now make use of the watchdog logic so
|
|
that systemd automatically notices when they hang.
|
|
|
|
* If the $container_ttys environment variable is set,
|
|
getty-generator will automatically spawn a getty for each
|
|
listed tty. This is useful for container managers to request
|
|
login gettys to be spawned on as many ttys as needed.
|
|
|
|
* %h, %s, %U specifier support is not available anymore when
|
|
used in unit files for PID 1. This is because NSS calls are
|
|
not safe from PID 1. They stay available for --user
|
|
instances of systemd, and as special case for the root user.
|
|
|
|
* loginctl gained a new "--no-legend" switch to turn off output
|
|
of the legend text.
|
|
|
|
* The "sd-login.h" API gained three new calls:
|
|
sd_session_is_remote(), sd_session_get_remote_user(),
|
|
sd_session_get_remote_host() to query information about
|
|
remote sessions.
|
|
|
|
* The udev hardware database now also carries vendor/product
|
|
information of SDIO devices.
|
|
|
|
* The "sd-daemon.h" API gained a new sd_watchdog_enabled() to
|
|
determine whether watchdog notifications are requested by
|
|
the system manager.
|
|
|
|
* Socket-activated per-connection services now include a
|
|
short description of the connection parameters in the
|
|
description.
|
|
|
|
* tmpfiles gained a new "--boot" option. When this is not used,
|
|
only lines where the command character is not suffixed with
|
|
"!" are executed. When this option is specified, those
|
|
options are executed too. This partitions tmpfiles
|
|
directives into those that can be safely executed at any
|
|
time, and those which should be run only at boot (for
|
|
example, a line that creates /run/nologin).
|
|
|
|
* A new API "sd-resolve.h" has been added which provides a simple
|
|
asynchronous wrapper around glibc NSS host name resolution
|
|
calls, such as getaddrinfo(). In contrast to glibc's
|
|
getaddrinfo_a(), it does not use signals. In contrast to most
|
|
other asynchronous name resolution libraries, this one does
|
|
not reimplement DNS, but reuses NSS, so that alternate
|
|
host name resolution systems continue to work, such as mDNS,
|
|
LDAP, etc. This API is based on libasyncns, but it has been
|
|
cleaned up for inclusion in systemd.
|
|
|
|
* The APIs "sd-journal.h", "sd-login.h", "sd-id128.h",
|
|
"sd-daemon.h" are no longer found in individual libraries
|
|
libsystemd-journal.so, libsystemd-login.so,
|
|
libsystemd-id128.so, libsystemd-daemon.so. Instead, we have
|
|
merged them into a single library, libsystemd.so, which
|
|
provides all symbols. The reason for this is cyclic
|
|
dependencies, as these libraries tend to use each other's
|
|
symbols. So far, we have managed to workaround that by linking
|
|
a copy of a good part of our code into each of these
|
|
libraries again and again, which, however, makes certain
|
|
things hard to do, like sharing static variables. Also, it
|
|
substantially increases footprint. With this change, there
|
|
is only one library for the basic APIs systemd
|
|
provides. Also, "sd-bus.h", "sd-memfd.h", "sd-event.h",
|
|
"sd-rtnl.h", "sd-resolve.h", "sd-utf8.h" are found in this
|
|
library as well, however are subject to the --enable-kdbus
|
|
switch (see below). Note that "sd-dhcp-client.h" is not part
|
|
of this library (this is because it only consumes, never
|
|
provides, services of/to other APIs). To make the transition
|
|
easy from the separate libraries to the unified one, we
|
|
provide the --enable-compat-libs compile-time switch which
|
|
will generate stub libraries that are compatible with the
|
|
old ones but redirect all calls to the new one.
|
|
|
|
* All of the kdbus logic and the new APIs "sd-bus.h",
|
|
"sd-memfd.h", "sd-event.h", "sd-rtnl.h", "sd-resolve.h",
|
|
and "sd-utf8.h" are compile-time optional via the
|
|
"--enable-kdbus" switch, and they are not compiled in by
|
|
default. To make use of kdbus, you have to explicitly enable
|
|
the switch. Note however, that neither the kernel nor the
|
|
userspace API for all of this is considered stable yet. We
|
|
want to maintain the freedom to still change the APIs for
|
|
now. By specifying this build-time switch, you acknowledge
|
|
that you are aware of the instability of the current
|
|
APIs.
|
|
|
|
* Also, note that while kdbus is pretty much complete,
|
|
it lacks one thing: proper policy support. This means you
|
|
can build a fully working system with all features; however,
|
|
it will be highly insecure. Policy support will be added in
|
|
one of the next releases, at the same time that we will
|
|
declare the APIs stable.
|
|
|
|
* When the kernel command-line argument "kdbus" is specified,
|
|
systemd will automatically load the kdbus.ko kernel module. At
|
|
this stage of development, it is only useful for testing kdbus
|
|
and should not be used in production. Note: if "--enable-kdbus"
|
|
is specified, and the kdbus.ko kernel module is available, and
|
|
"kdbus" is added to the kernel command line, the entire system
|
|
runs with kdbus instead of dbus-daemon, with the above mentioned
|
|
problem of missing the system policy enforcement. Also a future
|
|
version of kdbus.ko or a newer systemd will not be compatible with
|
|
each other, and will unlikely be able to boot the machine if only
|
|
one of them is updated.
|
|
|
|
* systemctl gained a new "import-environment" command which
|
|
uploads the caller's environment (or parts thereof) into the
|
|
service manager so that it is inherited by services started
|
|
by the manager. This is useful to upload variables like
|
|
$DISPLAY into the user service manager.
|
|
|
|
* A new PrivateDevices= switch has been added to service units
|
|
which allows running a service with a namespaced /dev
|
|
directory that does not contain any device nodes for
|
|
physical devices. More specifically, it only includes devices
|
|
such as /dev/null, /dev/urandom, and /dev/zero which are API
|
|
entry points.
|
|
|
|
* logind has been extended to support behaviour like VT
|
|
switching on seats that do not support a VT. This makes
|
|
multi-session available on seats that are not the first seat
|
|
(seat0), and on systems where kernel support for VTs has
|
|
been disabled at compile-time.
|
|
|
|
* If a process holds a delay lock for system sleep or shutdown
|
|
and fails to release it in time, we will now log its
|
|
identity. This makes it easier to identify processes that
|
|
cause slow suspends or power-offs.
|
|
|
|
* When parsing /etc/crypttab, support for a new key-slot=
|
|
option as supported by Debian is added. It allows indicating
|
|
which LUKS slot to use on disk, speeding up key loading.
|
|
|
|
* The sd_journald_sendv() API call has been checked and
|
|
officially declared to be async-signal-safe so that it may
|
|
be invoked from signal handlers for logging purposes.
|
|
|
|
* Boot-time status output is now enabled automatically after a
|
|
short timeout if boot does not progress, in order to give
|
|
the user an indication what she or he is waiting for.
|
|
|
|
* The boot-time output has been improved to show how much time
|
|
remains until jobs expire.
|
|
|
|
* The KillMode= switch in service units gained a new possible
|
|
value "mixed". If set, and the unit is shut down, then the
|
|
initial SIGTERM signal is sent only to the main daemon
|
|
process, while the following SIGKILL signal is sent to
|
|
all remaining processes of the service.
|
|
|
|
* When a scope unit is registered, a new property "Controller"
|
|
may be set. If set to a valid bus name, systemd will send a
|
|
RequestStop() signal to this name when it would like to shut
|
|
down the scope. This may be used to hook manager logic into
|
|
the shutdown logic of scope units. Also, scope units may now
|
|
be put in a special "abandoned" state, in which case the
|
|
manager process which created them takes no further
|
|
responsibilities for it.
|
|
|
|
* When reading unit files, systemd will now verify
|
|
the access mode of these files, and warn about certain
|
|
suspicious combinations. This has been added to make it
|
|
easier to track down packaging bugs where unit files are
|
|
marked executable or world-writable.
|
|
|
|
* systemd-nspawn gained a new "--setenv=" switch to set
|
|
container-wide environment variables. The similar option in
|
|
systemd-activate was renamed from "--environment=" to
|
|
"--setenv=" for consistency.
|
|
|
|
* systemd-nspawn has been updated to create a new kdbus domain
|
|
for each container that is invoked, thus allowing each
|
|
container to have its own set of system and user buses,
|
|
independent of the host.
|
|
|
|
* systemd-nspawn gained a new --drop-capability= switch to run
|
|
the container with less capabilities than the default. Both
|
|
--drop-capability= and --capability= now take the special
|
|
string "all" for dropping or keeping all capabilities.
|
|
|
|
* systemd-nspawn gained new switches for executing containers
|
|
with specific SELinux labels set.
|
|
|
|
* systemd-nspawn gained a new --quiet switch to not generate
|
|
any additional output but the container's own console
|
|
output.
|
|
|
|
* systemd-nspawn gained a new --share-system switch to run a
|
|
container without PID namespacing enabled.
|
|
|
|
* systemd-nspawn gained a new --register= switch to control
|
|
whether the container is registered with systemd-machined or
|
|
not. This is useful for containers that do not run full
|
|
OS images, but only specific apps.
|
|
|
|
* systemd-nspawn gained a new --keep-unit which may be used
|
|
when invoked as the only program from a service unit, and
|
|
results in registration of the unit service itself in
|
|
systemd-machined, instead of a newly opened scope unit.
|
|
|
|
* systemd-nspawn gained a new --network-interface= switch for
|
|
moving arbitrary interfaces to the container. The new
|
|
--network-veth switch creates a virtual Ethernet connection
|
|
between host and container. The new --network-bridge=
|
|
switch then allows assigning the host side of this virtual
|
|
Ethernet connection to a bridge device.
|
|
|
|
* systemd-nspawn gained a new --personality= switch for
|
|
setting the kernel personality for the container. This is
|
|
useful when running a 32-bit container on a 64-bit host. A
|
|
similar option Personality= is now also available for service
|
|
units to use.
|
|
|
|
* logind will now also track a "Desktop" identifier for each
|
|
session which encodes the desktop environment of it. This is
|
|
useful for desktop environments that want to identify
|
|
multiple running sessions of itself easily.
|
|
|
|
* A new SELinuxContext= setting for service units has been
|
|
added that allows setting a specific SELinux execution
|
|
context for a service.
|
|
|
|
* Most systemd client tools will now honour $SYSTEMD_LESS for
|
|
settings of the "less" pager. By default, these tools will
|
|
override $LESS to allow certain operations to work, such as
|
|
jump-to-the-end. With $SYSTEMD_LESS, it is possible to
|
|
influence this logic.
|
|
|
|
* systemd's "seccomp" hook-up has been changed to make use of
|
|
the libseccomp library instead of using its own
|
|
implementation. This has benefits for portability among
|
|
other things.
|
|
|
|
* For usage together with SystemCallFilter=, a new
|
|
SystemCallErrorNumber= setting has been introduced that
|
|
allows configuration of a system error number to be returned
|
|
on filtered system calls, instead of immediately killing the
|
|
process. Also, SystemCallArchitectures= has been added to
|
|
limit access to system calls of a particular architecture
|
|
(in order to turn off support for unused secondary
|
|
architectures). There is also a global
|
|
SystemCallArchitectures= setting in system.conf now to turn
|
|
off support for non-native system calls system-wide.
|
|
|
|
* systemd requires a kernel with a working name_to_handle_at(),
|
|
please see the kernel config requirements in the README file.
|
|
|
|
Contributions from: Adam Williamson, Alex Jia, Anatol Pomozov,
|
|
Ansgar Burchardt, AppleBloom, Auke Kok, Bastien Nocera,
|
|
Chengwei Yang, Christian Seiler, Colin Guthrie, Colin Walters,
|
|
Cristian Rodríguez, Daniel Buch, Daniele Medri, Daniel J
|
|
Walsh, Daniel Mack, Dan McGee, Dave Reisner, David Coppa,
|
|
David Herrmann, David Strauss, Djalal Harouni, Dmitry Pisklov,
|
|
Elia Pinto, Florian Weimer, George McCollister, Goffredo
|
|
Baroncelli, Greg Kroah-Hartman, Hendrik Brueckner, Igor
|
|
Zhbanov, Jan Engelhardt, Jan Janssen, Jason A. Donenfeld,
|
|
Jason St. John, Jasper St. Pierre, Jóhann B. Guðmundsson, Jose
|
|
Ignacio Naranjo, Karel Zak, Kay Sievers, Kristian Høgsberg,
|
|
Lennart Poettering, Lubomir Rintel, Lukas Nykryn, Lukasz
|
|
Skalski, Łukasz Stelmach, Luke Shumaker, Mantas Mikulėnas,
|
|
Marc-Antoine Perennou, Marcel Holtmann, Marcos Felipe Rasia de
|
|
Mello, Marko Myllynen, Martin Pitt, Matthew Monaco, Michael
|
|
Marineau, Michael Scherer, Michał Górny, Michal Sekletar,
|
|
Michele Curti, Oleksii Shevchuk, Olivier Brunel, Patrik Flykt,
|
|
Pavel Holica, Raudi, Richard Marko, Ronny Chevalier, Sébastien
|
|
Luttringer, Sergey Ptashnick, Shawn Landden, Simon Peeters,
|
|
Stefan Beller, Susant Sahani, Sylvain Plantefeve, Sylvia Else,
|
|
Tero Roponen, Thomas Bächler, Thomas Hindoe Paaboel Andersen,
|
|
Tom Gundersen, Umut Tezduyar Lindskog, Unai Uribarri, Václav
|
|
Pavlín, Vincent Batts, WaLyong Cho, William Giokas, Yang
|
|
Zhiyong, Yin Kangkai, Yuxuan Shui, Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2014-02-20
|
|
|
|
CHANGES WITH 208:
|
|
|
|
* logind has gained support for facilitating privileged input
|
|
and drm device access for unprivileged clients. This work is
|
|
useful to allow Wayland display servers (and similar
|
|
programs, such as kmscon) to run under the user's ID and
|
|
access input and drm devices which are normally
|
|
protected. When this is used (and the kernel is new enough)
|
|
logind will "mute" IO on the file descriptors passed to
|
|
Wayland as long as it is in the background and "unmute" it
|
|
if it returns into the foreground. This allows secure
|
|
session switching without allowing background sessions to
|
|
eavesdrop on input and display data. This also introduces
|
|
session switching support if VT support is turned off in the
|
|
kernel, and on seats that are not seat0.
|
|
|
|
* A new kernel command line option luks.options= is understood
|
|
now which allows specifying LUKS options for usage for LUKS
|
|
encrypted partitions specified with luks.uuid=.
|
|
|
|
* tmpfiles.d(5) snippets may now use specifier expansion in
|
|
path names. More specifically %m, %b, %H, %v, are now
|
|
replaced by the local machine id, boot id, hostname, and
|
|
kernel version number.
|
|
|
|
* A new tmpfiles.d(5) command "m" has been introduced which
|
|
may be used to change the owner/group/access mode of a file
|
|
or directory if it exists, but do nothing if it does not.
|
|
|
|
* This release removes high-level support for the
|
|
MemorySoftLimit= cgroup setting. The underlying kernel
|
|
cgroup attribute memory.soft_limit= is currently badly
|
|
designed and likely to be removed from the kernel API in its
|
|
current form, hence we should not expose it for now.
|
|
|
|
* The memory.use_hierarchy cgroup attribute is now enabled for
|
|
all cgroups systemd creates in the memory cgroup
|
|
hierarchy. This option is likely to be come the built-in
|
|
default in the kernel anyway, and the non-hierarchial mode
|
|
never made much sense in the intrinsically hierarchial
|
|
cgroup system.
|
|
|
|
* A new field _SYSTEMD_SLICE= is logged along with all journal
|
|
messages containing the slice a message was generated
|
|
from. This is useful to allow easy per-customer filtering of
|
|
logs among other things.
|
|
|
|
* systemd-journald will no longer adjust the group of journal
|
|
files it creates to the "systemd-journal" group. Instead we
|
|
rely on the journal directory to be owned by the
|
|
"systemd-journal" group, and its setgid bit set, so that the
|
|
kernel file system layer will automatically enforce that
|
|
journal files inherit this group assignment. The reason for
|
|
this change is that we cannot allow NSS look-ups from
|
|
journald which would be necessary to resolve
|
|
"systemd-journal" to a numeric GID, because this might
|
|
create deadlocks if NSS involves synchronous queries to
|
|
other daemons (such as nscd, or sssd) which in turn are
|
|
logging clients of journald and might block on it, which
|
|
would then dead lock. A tmpfiles.d(5) snippet included in
|
|
systemd will make sure the setgid bit and group are
|
|
properly set on the journal directory if it exists on every
|
|
boot. However, we recommend adjusting it manually after
|
|
upgrades too (or from RPM scriptlets), so that the change is
|
|
not delayed until next reboot.
|
|
|
|
* Backlight and random seed files in /var/lib/ have moved into
|
|
the /var/lib/systemd/ directory, in order to centralize all
|
|
systemd generated files in one directory.
|
|
|
|
* Boot time performance measurements (as displayed by
|
|
"systemd-analyze" for example) will now read ACPI 5.0 FPDT
|
|
performance information if that's available to determine how
|
|
much time BIOS and boot loader initialization required. With
|
|
a sufficiently new BIOS you hence no longer need to boot
|
|
with Gummiboot to get access to such information.
|
|
|
|
Contributions from: Andrey Borzenkov, Chen Jie, Colin Walters,
|
|
Cristian Rodríguez, Dave Reisner, David Herrmann, David
|
|
Mackey, David Strauss, Eelco Dolstra, Evan Callicoat, Gao
|
|
feng, Harald Hoyer, Jimmie Tauriainen, Kay Sievers, Lennart
|
|
Poettering, Lukas Nykryn, Mantas Mikulėnas, Martin Pitt,
|
|
Michael Scherer, Michał Górny, Mike Gilbert, Patrick McCarty,
|
|
Sebastian Ott, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2013-10-02
|
|
|
|
CHANGES WITH 207:
|
|
|
|
* The Restart= option for services now understands a new
|
|
on-watchdog setting, which will restart the service
|
|
automatically if the service stops sending out watchdog keep
|
|
alive messages (as configured with WatchdogSec=).
|
|
|
|
* The getty generator (which is responsible for bringing up a
|
|
getty on configured serial consoles) will no longer only
|
|
start a getty on the primary kernel console but on all
|
|
others, too. This makes the order in which console= is
|
|
specified on the kernel command line less important.
|
|
|
|
* libsystemd-logind gained a new sd_session_get_vt() call to
|
|
retrieve the VT number of a session.
|
|
|
|
* If the option "tries=0" is set for an entry of /etc/crypttab
|
|
its passphrase is queried indefinitely instead of any
|
|
maximum number of tries.
|
|
|
|
* If a service with a configure PID file terminates its PID
|
|
file will now be removed automatically if it still exists
|
|
afterwards. This should put an end to stale PID files.
|
|
|
|
* systemd-run will now also take relative binary path names
|
|
for execution and no longer insists on absolute paths.
|
|
|
|
* InaccessibleDirectories= and ReadOnlyDirectories= now take
|
|
paths that are optionally prefixed with "-" to indicate that
|
|
it should not be considered a failure if they do not exist.
|
|
|
|
* journalctl -o (and similar commands) now understands a new
|
|
output mode "short-precise", it is similar to "short" but
|
|
shows timestamps with usec accuracy.
|
|
|
|
* The option "discard" (as known from Debian) is now
|
|
synonymous to "allow-discards" in /etc/crypttab. In fact,
|
|
"discard" is preferred now (since it is easier to remember
|
|
and type).
|
|
|
|
* Some licensing clean-ups were made, so that more code is now
|
|
LGPL-2.1 licensed than before.
|
|
|
|
* A minimal tool to save/restore the display backlight
|
|
brightness across reboots has been added. It will store the
|
|
backlight setting as late as possible at shutdown, and
|
|
restore it as early as possible during reboot.
|
|
|
|
* A logic to automatically discover and enable home and swap
|
|
partitions on GPT disks has been added. With this in place
|
|
/etc/fstab becomes optional for many setups as systemd can
|
|
discover certain partitions located on the root disk
|
|
automatically. Home partitions are recognized under their
|
|
GPT type ID 933ac7e12eb44f13b8440e14e2aef915. Swap
|
|
partitions are recognized under their GPT type ID
|
|
0657fd6da4ab43c484e50933c84b4f4f.
|
|
|
|
* systemd will no longer pass any environment from the kernel
|
|
or initrd to system services. If you want to set an
|
|
environment for all services, do so via the kernel command
|
|
line systemd.setenv= assignment.
|
|
|
|
* The systemd-sysctl tool no longer natively reads the file
|
|
/etc/sysctl.conf. If desired, the file should be symlinked
|
|
from /etc/sysctl.d/99-sysctl.conf. Apart from providing
|
|
legacy support by a symlink rather than built-in code, it
|
|
also makes the otherwise hidden order of application of the
|
|
different files visible. (Note that this partly reverts to a
|
|
pre-198 application order of sysctl knobs!)
|
|
|
|
* The "systemctl set-log-level" and "systemctl dump" commands
|
|
have been moved to systemd-analyze.
|
|
|
|
* systemd-run learned the new --remain-after-exit switch,
|
|
which causes the scope unit not to be cleaned up
|
|
automatically after the process terminated.
|
|
|
|
* tmpfiles learned a new --exclude-prefix= switch to exclude
|
|
certain paths from operation.
|
|
|
|
* journald will now automatically flush all messages to disk
|
|
as soon as a message of the log priorities CRIT, ALERT or
|
|
EMERG is received.
|
|
|
|
Contributions from: Andrew Cook, Brandon Philips, Christian
|
|
Hesse, Christoph Junghans, Colin Walters, Daniel Schaal,
|
|
Daniel Wallace, Dave Reisner, David Herrmann, Gao feng, George
|
|
McCollister, Giovanni Campagna, Hannes Reinecke, Harald Hoyer,
|
|
Herczeg Zsolt, Holger Hans Peter Freyther, Jan Engelhardt,
|
|
Jesper Larsen, Kay Sievers, Khem Raj, Lennart Poettering,
|
|
Lukas Nykryn, Maciej Wereski, Mantas Mikulėnas, Marcel
|
|
Holtmann, Martin Pitt, Michael Biebl, Michael Marineau,
|
|
Michael Scherer, Michael Stapelberg, Michal Sekletar, Michał
|
|
Górny, Olivier Brunel, Ondrej Balaz, Ronny Chevalier, Shawn
|
|
Landden, Steven Hiscocks, Thomas Bächler, Thomas Hindoe
|
|
Paaboel Andersen, Tom Gundersen, Umut Tezduyar, WANG Chao,
|
|
William Giokas, Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2013-09-13
|
|
|
|
CHANGES WITH 206:
|
|
|
|
* The documentation has been updated to cover the various new
|
|
concepts introduced with 205.
|
|
|
|
* Unit files now understand the new %v specifier which
|
|
resolves to the kernel version string as returned by "uname
|
|
-r".
|
|
|
|
* systemctl now supports filtering the unit list output by
|
|
load state, active state and sub state, using the new
|
|
--state= parameter.
|
|
|
|
* "systemctl status" will now show the results of the
|
|
condition checks (like ConditionPathExists= and similar) of
|
|
the last start attempts of the unit. They are also logged to
|
|
the journal.
|
|
|
|
* "journalctl -b" may now be used to look for boot output of a
|
|
specific boot. Try "journalctl -b -1" for the previous boot,
|
|
but the syntax is substantially more powerful.
|
|
|
|
* "journalctl --show-cursor" has been added which prints the
|
|
cursor string the last shown log line. This may then be used
|
|
with the new "journalctl --after-cursor=" switch to continue
|
|
browsing logs from that point on.
|
|
|
|
* "journalctl --force" may now be used to force regeneration
|
|
of an FSS key.
|
|
|
|
* Creation of "dead" device nodes has been moved from udev
|
|
into kmod and tmpfiles. Previously, udev would read the kmod
|
|
databases to pre-generate dead device nodes based on meta
|
|
information contained in kernel modules, so that these would
|
|
be auto-loaded on access rather then at boot. As this
|
|
does not really have much to do with the exposing actual
|
|
kernel devices to userspace this has always been slightly
|
|
alien in the udev codebase. Following the new scheme kmod
|
|
will now generate a runtime snippet for tmpfiles from the
|
|
module meta information and it now is tmpfiles' job to the
|
|
create the nodes. This also allows overriding access and
|
|
other parameters for the nodes using the usual tmpfiles
|
|
facilities. As side effect this allows us to remove the
|
|
CAP_SYS_MKNOD capability bit from udevd entirely.
|
|
|
|
* logind's device ACLs may now be applied to these "dead"
|
|
devices nodes too, thus finally allowing managed access to
|
|
devices such as /dev/snd/sequencer whithout loading the
|
|
backing module right-away.
|
|
|
|
* A new RPM macro has been added that may be used to apply
|
|
tmpfiles configuration during package installation.
|
|
|
|
* systemd-detect-virt and ConditionVirtualization= now can
|
|
detect User-Mode-Linux machines (UML).
|
|
|
|
* journald will now implicitly log the effective capabilities
|
|
set of processes in the message metadata.
|
|
|
|
* systemd-cryptsetup has gained support for TrueCrypt volumes.
|
|
|
|
* The initrd interface has been simplified (more specifically,
|
|
support for passing performance data via environment
|
|
variables and fsck results via files in /run has been
|
|
removed). These features were non-essential, and are
|
|
nowadays available in a much nicer way by having systemd in
|
|
the initrd serialize its state and have the hosts systemd
|
|
deserialize it again.
|
|
|
|
* The udev "keymap" data files and tools to apply keyboard
|
|
specific mappings of scan to key codes, and force-release
|
|
scan code lists have been entirely replaced by a udev
|
|
"keyboard" builtin and a hwdb data file.
|
|
|
|
* systemd will now honour the kernel's "quiet" command line
|
|
argument also during late shutdown, resulting in a
|
|
completely silent shutdown when used.
|
|
|
|
* There's now an option to control the SO_REUSEPORT socket
|
|
option in .socket units.
|
|
|
|
* Instance units will now automatically get a per-template
|
|
subslice of system.slice unless something else is explicitly
|
|
configured. For example, instances of sshd@.service will now
|
|
implicitly be placed in system-sshd.slice rather than
|
|
system.slice as before.
|
|
|
|
* Test coverage support may now be enabled at build time.
|
|
|
|
Contributions from: Dave Reisner, Frederic Crozat, Harald
|
|
Hoyer, Holger Hans Peter Freyther, Jan Engelhardt, Jan
|
|
Janssen, Jason St. John, Jesper Larsen, Kay Sievers, Lennart
|
|
Poettering, Lukas Nykryn, Maciej Wereski, Martin Pitt, Michael
|
|
Olbrich, Ramkumar Ramachandra, Ross Lagerwall, Shawn Landden,
|
|
Thomas H.P. Andersen, Tom Gundersen, Tomasz Torcz, William
|
|
Giokas, Zbigniew Jędrzejewski-Szmek
|
|
|
|
-- Berlin, 2013-07-23
|
|
|
|
CHANGES WITH 205:
|
|
|
|
* Two new unit types have been introduced:
|
|
|
|
Scope units are very similar to service units, however, are
|
|
created out of pre-existing processes -- instead of PID 1
|
|
forking off the processes. By using scope units it is
|
|
possible for system services and applications to group their
|
|
own child processes (worker processes) in a powerful way
|
|
which then maybe used to organize them, or kill them
|
|
together, or apply resource limits on them.
|
|
|
|
Slice units may be used to partition system resources in an
|
|
hierarchial fashion and then assign other units to them. By
|
|
default there are now three slices: system.slice (for all
|
|
system services), user.slice (for all user sessions),
|
|
machine.slice (for VMs and containers).
|
|
|
|
Slices and scopes have been introduced primarily in
|
|
context of the work to move cgroup handling to a
|
|
single-writer scheme, where only PID 1
|
|
creates/removes/manages cgroups.
|
|
|
|
* There's a new concept of "transient" units. In contrast to
|
|
normal units these units are created via an API at runtime,
|
|
not from configuration from disk. More specifically this
|
|
means it is now possible to run arbitrary programs as
|
|
independent services, with all execution parameters passed
|
|
in via bus APIs rather than read from disk. Transient units
|
|
make systemd substantially more dynamic then it ever was,
|
|
and useful as a general batch manager.
|
|
|
|
* logind has been updated to make use of scope and slice units
|
|
for managing user sessions. As a user logs in he will get
|
|
his own private slice unit, to which all sessions are added
|
|
as scope units. We also added support for automatically
|
|
adding an instance of user@.service for the user into the
|
|
slice. Effectively logind will no longer create cgroup
|
|
hierarchies on its own now, it will defer entirely to PID 1
|
|
for this by means of scope, service and slice units. Since
|
|
user sessions this way become entities managed by PID 1
|
|
the output of "systemctl" is now a lot more comprehensive.
|
|
|
|
* A new mini-daemon "systemd-machined" has been added which
|
|
may be used by virtualization managers to register local
|
|
VMs/containers. nspawn has been updated accordingly, and
|
|
libvirt will be updated shortly. machined will collect a bit
|
|
of meta information about the VMs/containers, and assign
|
|
them their own scope unit (see above). The collected
|
|
meta-data is then made available via the "machinectl" tool,
|
|
and exposed in "ps" and similar tools. machined/machinectl
|
|
is compile-time optional.
|
|
|
|
* As discussed earlier, the low-level cgroup configuration
|
|
options ControlGroup=, ControlGroupModify=,
|
|
ControlGroupPersistent=, ControlGroupAttribute= have been
|
|
removed. Please use high-level attribute settings instead as
|
|
well as slice units.
|
|
|
|
* A new bus call SetUnitProperties() has been added to alter
|
|
various runtime parameters of a unit. This is primarily
|
|
useful to alter cgroup parameters dynamically in a nice way,
|
|
but will be extended later on to make more properties
|
|
modifiable at runtime. systemctl gained a new set-properties
|
|
command that wraps this call.
|
|
|
|
* A new tool "systemd-run" has been added which can be used to
|
|
run arbitrary command lines as transient services or scopes,
|
|
while configuring a number of settings via the command
|
|
line. This tool is currently very basic, however already
|
|
very useful. We plan to extend this tool to even allow
|
|
queuing of execution jobs with time triggers from the
|
|
command line, similar in fashion to "at".
|
|
|
|
* nspawn will now inform the user explicitly that kernels with
|
|
audit enabled break containers, and suggest the user to turn
|
|
off audit.
|
|
|
|
* Support for detecting the IMA and AppArmor security
|
|
frameworks with ConditionSecurity= has been added.
|
|
|
|
* journalctl gained a new "-k" switch for showing only kernel
|
|
messages, mimicking dmesg output; in addition to "--user"
|
|
and "--system" switches for showing only user's own logs
|
|
and system logs.
|
|
|
|
* systemd-delta can now show information about drop-in
|
|
snippets extending unit files.
|
|
|
|
* libsystemd-bus has been substantially updated but is still
|
|
not available as public API.
|
|
|
|
* systemd will now look for the "debug" argument on the kernel
|
|
command line and enable debug logging, similar to what
|
|
"systemd.log_level=debug" already did before.
|
|
|
|
* "systemctl set-default", "systemctl get-default" has been
|
|
added to configure the default.target symlink, which
|
|
controls what to boot into by default.
|
|
|
|
* "systemctl set-log-level" has been added as a convenient
|
|
way to raise and lower systemd logging threshold.
|
|
|
|
* "systemd-analyze plot" will now show the time the various
|
|
generators needed for execution, as well as information
|
|
about the unit file loading.
|
|
|
|
* libsystemd-journal gained a new sd_journal_open_files() call
|
|
for opening specific journal files. journactl also gained a
|
|
new switch to expose this new functionality. Previously we
|
|
only supported opening all files from a directory, or all
|
|
files from the system, as opening individual files only is
|
|
racy due to journal file rotation.
|
|
|
|
* systemd gained the new DefaultEnvironment= setting in
|
|
/etc/systemd/system.conf to set environment variables for
|
|
all services.
|
|
|
|
* If a privileged process logs a journal message with the
|
|
OBJECT_PID= field set, then journald will automatically
|
|
augment this with additional OBJECT_UID=, OBJECT_GID=,
|
|
OBJECT_COMM=, OBJECT_EXE=, ... fields. This is useful if
|
|
system services want to log events about specific client
|
|
processes. journactl/systemctl has been updated to make use
|
|
of this information if all log messages regarding a specific
|
|
unit is requested.
|
|
|
|
Contributions from: Auke Kok, Chengwei Yang, Colin Walters,
|
|
Cristian Rodríguez, Daniel Albers, Daniel Wallace, Dave
|
|
Reisner, David Coppa, David King, David Strauss, Eelco
|
|
Dolstra, Gabriel de Perthuis, Harald Hoyer, Jan Alexander
|
|
Steffens, Jan Engelhardt, Jan Janssen, Jason St. John, Johan
|
|
Heikkilä, Karel Zak, Karol Lewandowski, Kay Sievers, Lennart
|
|
Poettering, Lukas Nykryn, Mantas Mikulėnas, Marius Vollmer,
|
|
Martin Pitt, Michael Biebl, Michael Olbrich, Michael Tremer,
|
|
Michal Schmidt, Michał Bartoszkiewicz, Nirbheek Chauhan,
|
|
Pierre Neidhardt, Ross Burton, Ross Lagerwall, Sean McGovern,
|
|
Thomas Hindoe Paaboel Andersen, Tom Gundersen, Umut Tezduyar,
|
|
Václav Pavlín, Zachary Cook, Zbigniew Jędrzejewski-Szmek,
|
|
Łukasz Stelmach, 장동준
|
|
|
|
CHANGES WITH 204:
|
|
|
|
* The Python bindings gained some minimal support for the APIs
|
|
exposed by libsystemd-logind.
|
|
|
|
* ConditionSecurity= gained support for detecting SMACK. Since
|
|
this condition already supports SELinux and AppArmor we only
|
|
miss IMA for this. Patches welcome!
|
|
|
|
Contributions from: Karol Lewandowski, Lennart Poettering,
|
|
Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 203:
|
|
|
|
* systemd-nspawn will now create /etc/resolv.conf if
|
|
necessary, before bind-mounting the host's file onto it.
|
|
|
|
* systemd-nspawn will now store meta information about a
|
|
container on the container's cgroup as extended attribute
|
|
fields, including the root directory.
|
|
|
|
* The cgroup hierarchy has been reworked in many ways. All
|
|
objects any of the components systemd creates in the cgroup
|
|
tree are now suffixed. More specifically, user sessions are
|
|
now placed in cgroups suffixed with ".session", users in
|
|
cgroups suffixed with ".user", and nspawn containers in
|
|
cgroups suffixed with ".nspawn". Furthermore, all cgroup
|
|
names are now escaped in a simple scheme to avoid collision
|
|
of userspace object names with kernel filenames. This work
|
|
is preparation for making these objects relocatable in the
|
|
cgroup tree, in order to allow easy resource partitioning of
|
|
these objects without causing naming conflicts.
|
|
|
|
* systemctl list-dependencies gained the new switches
|
|
--plain, --reverse, --after and --before.
|
|
|
|
* systemd-inhibit now shows the process name of processes that
|
|
have taken an inhibitor lock.
|
|
|
|
* nss-myhostname will now also resolve "localhost"
|
|
implicitly. This makes /etc/hosts an optional file and
|
|
nicely handles that on IPv6 ::1 maps to both "localhost" and
|
|
the local hostname.
|
|
|
|
* libsystemd-logind.so gained a new call
|
|
sd_get_machine_names() to enumerate running containers and
|
|
VMs (currently only supported by very new libvirt and
|
|
nspawn). sd_login_monitor can now be used to watch
|
|
VMs/containers coming and going.
|
|
|
|
* .include is not allowed recursively anymore, and only in
|
|
unit files. Usually it is better to use drop-in snippets in
|
|
.d/*.conf anyway, as introduced with systemd 198.
|
|
|
|
* systemd-analyze gained a new "critical-chain" command that
|
|
determines the slowest chain of units run during system
|
|
boot-up. It is very useful for tracking down where
|
|
optimizing boot time is the most beneficial.
|
|
|
|
* systemd will no longer allow manipulating service paths in
|
|
the name=systemd:/system cgroup tree using ControlGroup= in
|
|
units. (But is still fine with it in all other dirs.)
|
|
|
|
* There's a new systemd-nspawn@.service service file that may
|
|
be used to easily run nspawn containers as system
|
|
services. With the container's root directory in
|
|
/var/lib/container/foobar it is now sufficient to run
|
|
"systemctl start systemd-nspawn@foobar.service" to boot it.
|
|
|
|
* systemd-cgls gained a new parameter "--machine" to list only
|
|
the processes within a certain container.
|
|
|
|
* ConditionSecurity= now can check for "apparmor". We still
|
|
are lacking checks for SMACK and IMA for this condition
|
|
check though. Patches welcome!
|
|
|
|
* A new configuration file /etc/systemd/sleep.conf has been
|
|
added that may be used to configure which kernel operation
|
|
systemd is supposed to execute when "suspend", "hibernate"
|
|
or "hybrid-sleep" is requested. This makes the new kernel
|
|
"freeze" state accessible to the user.
|
|
|
|
* ENV{SYSTEMD_WANTS} in udev rules will now implicitly escape
|
|
the passed argument if applicable.
|
|
|
|
Contributions from: Auke Kok, Colin Guthrie, Colin Walters,
|
|
Cristian Rodríguez, Daniel Buch, Daniel Wallace, Dave Reisner,
|
|
Evangelos Foutras, Greg Kroah-Hartman, Harald Hoyer, Josh
|
|
Triplett, Kay Sievers, Lennart Poettering, Lukas Nykryn,
|
|
MUNEDA Takahiro, Mantas Mikulėnas, Mirco Tischler, Nathaniel
|
|
Chen, Nirbheek Chauhan, Ronny Chevalier, Ross Lagerwall, Tom
|
|
Gundersen, Umut Tezduyar, Ville Skyttä, Zbigniew
|
|
Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 202:
|
|
|
|
* The output of 'systemctl list-jobs' got some polishing. The
|
|
'--type=' argument may now be passed more than once. A new
|
|
command 'systemctl list-sockets' has been added which shows
|
|
a list of kernel sockets systemd is listening on with the
|
|
socket units they belong to, plus the units these socket
|
|
units activate.
|
|
|
|
* The experimental libsystemd-bus library got substantial
|
|
updates to work in conjunction with the (also experimental)
|
|
kdbus kernel project. It works well enough to exchange
|
|
messages with some sophistication. Note that kdbus is not
|
|
ready yet, and the library is mostly an elaborate test case
|
|
for now, and not installable.
|
|
|
|
* systemd gained a new unit 'systemd-static-nodes.service'
|
|
that generates static device nodes earlier during boot, and
|
|
can run in conjunction with udev.
|
|
|
|
* libsystemd-login gained a new call sd_pid_get_user_unit()
|
|
to retrieve the user systemd unit a process is running
|
|
in. This is useful for systems where systemd is used as
|
|
session manager.
|
|
|
|
* systemd-nspawn now places all containers in the new /machine
|
|
top-level cgroup directory in the name=systemd
|
|
hierarchy. libvirt will soon do the same, so that we get a
|
|
uniform separation of /system, /user and /machine for system
|
|
services, user processes and containers/virtual
|
|
machines. This new cgroup hierarchy is also useful to stick
|
|
stable names to specific container instances, which can be
|
|
recognized later this way (this name may be controlled
|
|
via systemd-nspawn's new -M switch). libsystemd-login also
|
|
gained a new call sd_pid_get_machine_name() to retrieve the
|
|
name of the container/VM a specific process belongs to.
|
|
|
|
* bootchart can now store its data in the journal.
|
|
|
|
* libsystemd-journal gained a new call
|
|
sd_journal_add_conjunction() for AND expressions to the
|
|
matching logic. This can be used to express more complex
|
|
logical expressions.
|
|
|
|
* journactl can now take multiple --unit= and --user-unit=
|
|
switches.
|
|
|
|
* The cryptsetup logic now understands the "luks.key=" kernel
|
|
command line switch for specifying a file to read the
|
|
decryption key from. Also, if a configured key file is not
|
|
found the tool will now automatically fall back to prompting
|
|
the user.
|
|
|
|
* Python systemd.journal module was updated to wrap recently
|
|
added functions from libsystemd-journal. The interface was
|
|
changed to bring the low level interface in s.j._Reader
|
|
closer to the C API, and the high level interface in
|
|
s.j.Reader was updated to wrap and convert all data about
|
|
an entry.
|
|
|
|
Contributions from: Anatol Pomozov, Auke Kok, Harald Hoyer,
|
|
Henrik Grindal Bakken, Josh Triplett, Kay Sievers, Lennart
|
|
Poettering, Lukas Nykryn, Mantas Mikulėnas Marius Vollmer,
|
|
Martin Jansa, Martin Pitt, Michael Biebl, Michal Schmidt,
|
|
Mirco Tischler, Pali Rohar, Simon Peeters, Steven Hiscocks,
|
|
Tom Gundersen, Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 201:
|
|
|
|
* journalctl --update-catalog now understands a new --root=
|
|
option to operate on catalogs found in a different root
|
|
directory.
|
|
|
|
* During shutdown after systemd has terminated all running
|
|
services a final killing loop kills all remaining left-over
|
|
processes. We will now print the name of these processes
|
|
when we send SIGKILL to them, since this usually indicates a
|
|
problem.
|
|
|
|
* If /etc/crypttab refers to password files stored on
|
|
configured mount points automatic dependencies will now be
|
|
generated to ensure the specific mount is established first
|
|
before the key file is attempted to be read.
|
|
|
|
* 'systemctl status' will now show information about the
|
|
network sockets a socket unit is listening on.
|
|
|
|
* 'systemctl status' will also shown information about any
|
|
drop-in configuration file for units. (Drop-In configuration
|
|
files in this context are files such as
|
|
/etc/systemd/systemd/foobar.service.d/*.conf)
|
|
|
|
* systemd-cgtop now optionally shows summed up CPU times of
|
|
cgroups. Press '%' while running cgtop to switch between
|
|
percentage and absolute mode. This is useful to determine
|
|
which cgroups use up the most CPU time over the entire
|
|
runtime of the system. systemd-cgtop has also been updated
|
|
to be 'pipeable' for processing with further shell tools.
|
|
|
|
* 'hostnamectl set-hostname' will now allow setting of FQDN
|
|
hostnames.
|
|
|
|
* The formatting and parsing of time span values has been
|
|
changed. The parser now understands fractional expressions
|
|
such as "5.5h". The formatter will now output fractional
|
|
expressions for all time spans under 1min, i.e. "5.123456s"
|
|
rather than "5s 123ms 456us". For time spans under 1s
|
|
millisecond values are shown, for those under 1ms
|
|
microsecond values are shown. This should greatly improve
|
|
all time-related output of systemd.
|
|
|
|
* libsystemd-login and libsystemd-journal gained new
|
|
functions for querying the poll() events mask and poll()
|
|
timeout value for integration into arbitrary event
|
|
loops.
|
|
|
|
* localectl gained the ability to list available X11 keymaps
|
|
(models, layouts, variants, options).
|
|
|
|
* 'systemd-analyze dot' gained the ability to filter for
|
|
specific units via shell-style globs, to create smaller,
|
|
more useful graphs. I.e. it is now possible to create simple
|
|
graphs of all the dependencies between only target units, or
|
|
of all units that Avahi has dependencies with.
|
|
|
|
Contributions from: Cristian Rodríguez, Dr. Tilmann Bubeck,
|
|
Harald Hoyer, Holger Hans Peter Freyther, Kay Sievers, Kelly
|
|
Anderson, Koen Kooi, Lennart Poettering, Maksim Melnikau,
|
|
Marc-Antoine Perennou, Marius Vollmer, Martin Pitt, Michal
|
|
Schmidt, Oleksii Shevchuk, Ronny Chevalier, Simon McVittie,
|
|
Steven Hiscocks, Thomas Weißschuh, Umut Tezduyar, Václav
|
|
Pavlín, Zbigniew Jędrzejewski-Szmek, Łukasz Stelmach
|
|
|
|
CHANGES WITH 200:
|
|
|
|
* The boot-time readahead implementation for rotating media
|
|
will now read the read-ahead data in multiple passes which
|
|
consist of all read requests made in equidistant time
|
|
intervals. This means instead of strictly reading read-ahead
|
|
data in its physical order on disk we now try to find a
|
|
middle ground between physical and access time order.
|
|
|
|
* /etc/os-release files gained a new BUILD_ID= field for usage
|
|
on operating systems that provide continuous builds of OS
|
|
images.
|
|
|
|
Contributions from: Auke Kok, Eelco Dolstra, Kay Sievers,
|
|
Lennart Poettering, Lukas Nykryn, Martin Pitt, Václav Pavlín
|
|
William Douglas, Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 199:
|
|
|
|
* systemd-python gained an API exposing libsystemd-daemon.
|
|
|
|
* The SMACK setup logic gained support for uploading CIPSO
|
|
security policy.
|
|
|
|
* Behaviour of PrivateTmp=, ReadWriteDirectories=,
|
|
ReadOnlyDirectories= and InaccessibleDirectories= has
|
|
changed. The private /tmp and /var/tmp directories are now
|
|
shared by all processes of a service (which means
|
|
ExecStartPre= may now leave data in /tmp that ExecStart= of
|
|
the same service can still access). When a service is
|
|
stopped its temporary directories are immediately deleted
|
|
(normal clean-up with tmpfiles is still done in addition to
|
|
this though).
|
|
|
|
* By default, systemd will now set a couple of sysctl
|
|
variables in the kernel: the safe sysrq options are turned
|
|
on, IP route verification is turned on, and source routing
|
|
disabled. The recently added hardlink and softlink
|
|
protection of the kernel is turned on. These settings should
|
|
be reasonably safe, and good defaults for all new systems.
|
|
|
|
* The predictable network naming logic may now be turned off
|
|
with a new kernel command line switch: net.ifnames=0.
|
|
|
|
* A new libsystemd-bus module has been added that implements a
|
|
pretty complete D-Bus client library. For details see:
|
|
|
|
http://lists.freedesktop.org/archives/systemd-devel/2013-March/009797.html
|
|
|
|
* journald will now explicitly flush the journal files to disk
|
|
at the latest 5min after each write. The file will then also
|
|
be marked offline until the next write. This should increase
|
|
reliability in case of a crash. The synchronization delay
|
|
can be configured via SyncIntervalSec= in journald.conf.
|
|
|
|
* There's a new remote-fs-setup.target unit that can be used
|
|
to pull in specific services when at least one remote file
|
|
system is to be mounted.
|
|
|
|
* There are new targets timers.target and paths.target as
|
|
canonical targets to pull user timer and path units in
|
|
from. This complements sockets.target with a similar
|
|
purpose for socket units.
|
|
|
|
* libudev gained a new call udev_device_set_attribute_value()
|
|
to set sysfs attributes of a device.
|
|
|
|
* The udev daemon now sets the default number of worker
|
|
processes executed in parallel based on the number of available
|
|
CPUs instead of the amount of available RAM. This is supposed
|
|
to provide a more reliable default and limit a too aggressive
|
|
paralellism for setups with 1000s of devices connected.
|
|
|
|
Contributions from: Auke Kok, Colin Walters, Cristian
|
|
Rodríguez, Daniel Buch, Dave Reisner, Frederic Crozat, Hannes
|
|
Reinecke, Harald Hoyer, Jan Alexander Steffens, Jan
|
|
Engelhardt, Josh Triplett, Kay Sievers, Lennart Poettering,
|
|
Mantas Mikulėnas, Martin Pitt, Mathieu Bridon, Michael Biebl,
|
|
Michal Schmidt, Michal Sekletar, Miklos Vajna, Nathaniel Chen,
|
|
Oleksii Shevchuk, Ozan Çağlayan, Thomas Hindoe Paaboel
|
|
Andersen, Tollef Fog Heen, Tom Gundersen, Umut Tezduyar,
|
|
Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 198:
|
|
|
|
* Configuration of unit files may now be extended via drop-in
|
|
files without having to edit/override the unit files
|
|
themselves. More specifically, if the administrator wants to
|
|
change one value for a service file foobar.service he can
|
|
now do so by dropping in a configuration snippet into
|
|
/etc/systemd/system/foobar.service.d/*.conf. The unit logic
|
|
will load all these snippets and apply them on top of the
|
|
main unit configuration file, possibly extending or
|
|
overriding its settings. Using these drop-in snippets is
|
|
generally nicer than the two earlier options for changing
|
|
unit files locally: copying the files from
|
|
/usr/lib/systemd/system/ to /etc/systemd/system/ and editing
|
|
them there; or creating a new file in /etc/systemd/system/
|
|
that incorporates the original one via ".include". Drop-in
|
|
snippets into these .d/ directories can be placed in any
|
|
directory systemd looks for units in, and the usual
|
|
overriding semantics between /usr/lib, /etc and /run apply
|
|
for them too.
|
|
|
|
* Most unit file settings which take lists of items can now be
|
|
reset by assigning the empty string to them. For example,
|
|
normally, settings such as Environment=FOO=BAR append a new
|
|
environment variable assignment to the environment block,
|
|
each time they are used. By assigning Environment= the empty
|
|
string the environment block can be reset to empty. This is
|
|
particularly useful with the .d/*.conf drop-in snippets
|
|
mentioned above, since this adds the ability to reset list
|
|
settings from vendor unit files via these drop-ins.
|
|
|
|
* systemctl gained a new "list-dependencies" command for
|
|
listing the dependencies of a unit recursively.
|
|
|
|
* Inhibitors are now honored and listed by "systemctl
|
|
suspend", "systemctl poweroff" (and similar) too, not only
|
|
GNOME. These commands will also list active sessions by
|
|
other users.
|
|
|
|
* Resource limits (as exposed by the various control group
|
|
controllers) can now be controlled dynamically at runtime
|
|
for all units. More specifically, you can now use a command
|
|
like "systemctl set-cgroup-attr foobar.service cpu.shares
|
|
2000" to alter the CPU shares a specific service gets. These
|
|
settings are stored persistently on disk, and thus allow the
|
|
administrator to easily adjust the resource usage of
|
|
services with a few simple commands. This dynamic resource
|
|
management logic is also available to other programs via the
|
|
bus. Almost any kernel cgroup attribute and controller is
|
|
supported.
|
|
|
|
* systemd-vconsole-setup will now copy all font settings to
|
|
all allocated VTs, where it previously applied them only to
|
|
the foreground VT.
|
|
|
|
* libsystemd-login gained the new sd_session_get_tty() API
|
|
call.
|
|
|
|
* This release drops support for a few legacy or
|
|
distribution-specific LSB facility names when parsing init
|
|
scripts: $x-display-manager, $mail-transfer-agent,
|
|
$mail-transport-agent, $mail-transfer-agent, $smtp,
|
|
$null. Also, the mail-transfer-agent.target unit backing
|
|
this has been removed. Distributions which want to retain
|
|
compatibility with this should carry the burden for
|
|
supporting this themselves and patch support for these back
|
|
in, if they really need to. Also, the facilities $syslog and
|
|
$local_fs are now ignored, since systemd does not support
|
|
early-boot LSB init scripts anymore, and these facilities
|
|
are implied anyway for normal services. syslog.target has
|
|
also been removed.
|
|
|
|
* There are new bus calls on PID1's Manager object for
|
|
cancelling jobs, and removing snapshot units. Previously,
|
|
both calls were only available on the Job and Snapshot
|
|
objects themselves.
|
|
|
|
* systemd-journal-gatewayd gained SSL support.
|
|
|
|
* The various "environment" files, such as /etc/locale.conf
|
|
now support continuation lines with a backslash ("\") as
|
|
last character in the line, similarly in style (but different)
|
|
to how this is supported in shells.
|
|
|
|
* For normal user processes the _SYSTEMD_USER_UNIT= field is
|
|
now implicitly appended to every log entry logged. systemctl
|
|
has been updated to filter by this field when operating on a
|
|
user systemd instance.
|
|
|
|
* nspawn will now implicitly add the CAP_AUDIT_WRITE and
|
|
CAP_AUDIT_CONTROL capabilities to the capabilities set for
|
|
the container. This makes it easier to boot unmodified
|
|
Fedora systems in a container, which however still requires
|
|
audit=0 to be passed on the kernel command line. Auditing in
|
|
kernel and userspace is unfortunately still too broken in
|
|
context of containers, hence we recommend compiling it out
|
|
of the kernel or using audit=0. Hopefully this will be fixed
|
|
one day for good in the kernel.
|
|
|
|
* nspawn gained the new --bind= and --bind-ro= parameters to
|
|
bind mount specific directories from the host into the
|
|
container.
|
|
|
|
* nspawn will now mount its own devpts file system instance
|
|
into the container, in order not to leak pty devices from
|
|
the host into the container.
|
|
|
|
* systemd will now read the firmware boot time performance
|
|
information from the EFI variables, if the used boot loader
|
|
supports this, and takes it into account for boot performance
|
|
analysis via "systemd-analyze". This is currently supported
|
|
only in conjunction with Gummiboot, but could be supported
|
|
by other boot loaders too. For details see:
|
|
|
|
http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface
|
|
|
|
* A new generator has been added that automatically mounts the
|
|
EFI System Partition (ESP) to /boot, if that directory
|
|
exists, is empty, and no other file system has been
|
|
configured to be mounted there.
|
|
|
|
* logind will now send out PrepareForSleep(false) out
|
|
unconditionally, after coming back from suspend. This may be
|
|
used by applications as asynchronous notification for
|
|
system resume events.
|
|
|
|
* "systemctl unlock-sessions" has been added, that allows
|
|
unlocking the screens of all user sessions at once, similar
|
|
to how "systemctl lock-sessions" already locked all users
|
|
sessions. This is backed by a new D-Bus call UnlockSessions().
|
|
|
|
* "loginctl seat-status" will now show the master device of a
|
|
seat. (i.e. the device of a seat that needs to be around for
|
|
the seat to be considered available, usually the graphics
|
|
card).
|
|
|
|
* tmpfiles gained a new "X" line type, that allows
|
|
configuration of files and directories (with wildcards) that
|
|
shall be excluded from automatic cleanup ("aging").
|
|
|
|
* udev default rules set the device node permissions now only
|
|
at "add" events, and do not change them any longer with a
|
|
later "change" event.
|
|
|
|
* The log messages for lid events and power/sleep keypresses
|
|
now carry a message ID.
|
|
|
|
* We now have a substantially larger unit test suite, but this
|
|
continues to be work in progress.
|
|
|
|
* udevadm hwdb gained a new --root= parameter to change the
|
|
root directory to operate relative to.
|
|
|
|
* logind will now issue a background sync() request to the kernel
|
|
early at shutdown, so that dirty buffers are flushed to disk early
|
|
instead of at the last moment, in order to optimize shutdown
|
|
times a little.
|
|
|
|
* A new bootctl tool has been added that is an interface for
|
|
certain boot loader operations. This is currently a preview
|
|
and is likely to be extended into a small mechanism daemon
|
|
like timedated, localed, hostnamed, and can be used by
|
|
graphical UIs to enumerate available boot options, and
|
|
request boot into firmware operations.
|
|
|
|
* systemd-bootchart has been relicensed to LGPLv2.1+ to match
|
|
the rest of the package. It also has been updated to work
|
|
correctly in initrds.
|
|
|
|
* Policykit previously has been runtime optional, and is now
|
|
also compile time optional via a configure switch.
|
|
|
|
* systemd-analyze has been reimplemented in C. Also "systemctl
|
|
dot" has moved into systemd-analyze.
|
|
|
|
* "systemctl status" with no further parameters will now print
|
|
the status of all active or failed units.
|
|
|
|
* Operations such as "systemctl start" can now be executed
|
|
with a new mode "--irreversible" which may be used to queue
|
|
operations that cannot accidentally be reversed by a later
|
|
job queuing. This is by default used to make shutdown
|
|
requests more robust.
|
|
|
|
* The Python API of systemd now gained a new module for
|
|
reading journal files.
|
|
|
|
* A new tool kernel-install has been added that can install
|
|
kernel images according to the Boot Loader Specification:
|
|
|
|
http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec
|
|
|
|
* Boot time console output has been improved to provide
|
|
animated boot time output for hanging jobs.
|
|
|
|
* A new tool systemd-activate has been added which can be used
|
|
to test socket activation with, directly from the command
|
|
line. This should make it much easier to test and debug
|
|
socket activation in daemons.
|
|
|
|
* journalctl gained a new "--reverse" (or -r) option to show
|
|
journal output in reverse order (i.e. newest line first).
|
|
|
|
* journalctl gained a new "--pager-end" (or -e) option to jump
|
|
to immediately jump to the end of the journal in the
|
|
pager. This is only supported in conjunction with "less".
|
|
|
|
* journalctl gained a new "--user-unit=" option, that works
|
|
similarly to "--unit=" but filters for user units rather than
|
|
system units.
|
|
|
|
* A number of unit files to ease adoption of systemd in
|
|
initrds has been added. This moves some minimal logic from
|
|
the various initrd implementations into systemd proper.
|
|
|
|
* The journal files are now owned by a new group
|
|
"systemd-journal", which exists specifically to allow access
|
|
to the journal, and nothing else. Previously, we used the
|
|
"adm" group for that, which however possibly covers more
|
|
than just journal/log file access. This new group is now
|
|
already used by systemd-journal-gatewayd to ensure this
|
|
daemon gets access to the journal files and as little else
|
|
as possible. Note that "make install" will also set FS ACLs
|
|
up for /var/log/journal to give "adm" and "wheel" read
|
|
access to it, in addition to "systemd-journal" which owns
|
|
the journal files. We recommend that packaging scripts also
|
|
add read access to "adm" + "wheel" to /var/log/journal, and
|
|
all existing/future journal files. To normal users and
|
|
administrators little changes, however packagers need to
|
|
ensure to create the "systemd-journal" system group at
|
|
package installation time.
|
|
|
|
* The systemd-journal-gatewayd now runs as unprivileged user
|
|
systemd-journal-gateway:systemd-journal-gateway. Packaging
|
|
scripts need to create these system user/group at
|
|
installation time.
|
|
|
|
* timedated now exposes a new boolean property CanNTP that
|
|
indicates whether a local NTP service is available or not.
|
|
|
|
* systemd-detect-virt will now also detect xen PVs
|
|
|
|
* The pstore file system is now mounted by default, if it is
|
|
available.
|
|
|
|
* In addition to the SELinux and IMA policies we will now also
|
|
load SMACK policies at early boot.
|
|
|
|
Contributions from: Adel Gadllah, Aleksander Morgado, Auke
|
|
Kok, Ayan George, Bastien Nocera, Colin Walters, Daniel Buch,
|
|
Daniel Wallace, Dave Reisner, David Herrmann, David Strauss,
|
|
Eelco Dolstra, Enrico Scholz, Frederic Crozat, Harald Hoyer,
|
|
Jan Janssen, Jonathan Callen, Kay Sievers, Lennart Poettering,
|
|
Lukas Nykryn, Mantas Mikulėnas, Marc-Antoine Perennou, Martin
|
|
Pitt, Mauro Dreissig, Max F. Albrecht, Michael Biebl, Michael
|
|
Olbrich, Michal Schmidt, Michal Sekletar, Michal Vyskocil,
|
|
Michał Bartoszkiewicz, Mirco Tischler, Nathaniel Chen, Nestor
|
|
Ovroy, Oleksii Shevchuk, Paul W. Frields, Piotr Drąg, Rob
|
|
Clark, Ryan Lortie, Simon McVittie, Simon Peeters, Steven
|
|
Hiscocks, Thomas Hindoe Paaboel Andersen, Tollef Fog Heen, Tom
|
|
Gundersen, Umut Tezduyar, William Giokas, Zbigniew
|
|
Jędrzejewski-Szmek, Zeeshan Ali (Khattak)
|
|
|
|
CHANGES WITH 197:
|
|
|
|
* Timer units now support calendar time events in addition to
|
|
monotonic time events. That means you can now trigger a unit
|
|
based on a calendar time specification such as "Thu,Fri
|
|
2013-*-1,5 11:12:13" which refers to 11:12:13 of the first
|
|
or fifth day of any month of the year 2013, given that it is
|
|
a thursday or friday. This brings timer event support
|
|
considerably closer to cron's capabilities. For details on
|
|
the supported calendar time specification language see
|
|
systemd.time(7).
|
|
|
|
* udev now supports a number of different naming policies for
|
|
network interfaces for predictable names, and a combination
|
|
of these policies is now the default. Please see this wiki
|
|
document for details:
|
|
|
|
http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
|
|
|
|
* Auke Kok's bootchart implementation has been added to the
|
|
systemd tree. It is an optional component that can graph the
|
|
boot in quite some detail. It is one of the best bootchart
|
|
implementations around and minimal in its code and
|
|
dependencies.
|
|
|
|
* nss-myhostname has been integrated into the systemd source
|
|
tree. nss-myhostname guarantees that the local hostname
|
|
always stays resolvable via NSS. It has been a weak
|
|
requirement of systemd-hostnamed since a long time, and
|
|
since its code is actually trivial we decided to just
|
|
include it in systemd's source tree. It can be turned off
|
|
with a configure switch.
|
|
|
|
* The read-ahead logic is now capable of properly detecting
|
|
whether a btrfs file system is on SSD or rotating media, in
|
|
order to optimize the read-ahead scheme. Previously, it was
|
|
only capable of detecting this on traditional file systems
|
|
such as ext4.
|
|
|
|
* In udev, additional device properties are now read from the
|
|
IAB in addition to the OUI database. Also, Bluetooth company
|
|
identities are attached to the devices as well.
|
|
|
|
* In service files %U may be used as specifier that is
|
|
replaced by the configured user name of the service.
|
|
|
|
* nspawn may now be invoked without a controlling TTY. This
|
|
makes it suitable for invocation as its own service. This
|
|
may be used to set up a simple containerized server system
|
|
using only core OS tools.
|
|
|
|
* systemd and nspawn can now accept socket file descriptors
|
|
when they are started for socket activation. This enables
|
|
implementation of socket activated nspawn
|
|
containers. i.e. think about autospawning an entire OS image
|
|
when the first SSH or HTTP connection is received. We expect
|
|
that similar functionality will also be added to libvirt-lxc
|
|
eventually.
|
|
|
|
* journalctl will now suppress ANSI color codes when
|
|
presenting log data.
|
|
|
|
* systemctl will no longer show control group information for
|
|
a unit if a the control group is empty anyway.
|
|
|
|
* logind can now automatically suspend/hibernate/shutdown the
|
|
system on idle.
|
|
|
|
* /etc/machine-info and hostnamed now also expose the chassis
|
|
type of the system. This can be used to determine whether
|
|
the local system is a laptop, desktop, handset or
|
|
tablet. This information may either be configured by the
|
|
user/vendor or is automatically determined from ACPI and DMI
|
|
information if possible.
|
|
|
|
* A number of PolicyKit actions are now bound together with
|
|
"imply" rules. This should simplify creating UIs because
|
|
many actions will now authenticate similar ones as well.
|
|
|
|
* Unit files learnt a new condition ConditionACPower= which
|
|
may be used to conditionalize a unit depending on whether an
|
|
AC power source is connected or not, of whether the system
|
|
is running on battery power.
|
|
|
|
* systemctl gained a new "is-failed" verb that may be used in
|
|
shell scripts and suchlike to check whether a specific unit
|
|
is in the "failed" state.
|
|
|
|
* The EnvironmentFile= setting in unit files now supports file
|
|
globbing, and can hence be used to easily read a number of
|
|
environment files at once.
|
|
|
|
* systemd will no longer detect and recognize specific
|
|
distributions. All distribution-specific #ifdeffery has been
|
|
removed, systemd is now fully generic and
|
|
distribution-agnostic. Effectively, not too much is lost as
|
|
a lot of the code is still accessible via explicit configure
|
|
switches. However, support for some distribution specific
|
|
legacy configuration file formats has been dropped. We
|
|
recommend distributions to simply adopt the configuration
|
|
files everybody else uses now and convert the old
|
|
configuration from packaging scripts. Most distributions
|
|
already did that. If that's not possible or desirable,
|
|
distributions are welcome to forward port the specific
|
|
pieces of code locally from the git history.
|
|
|
|
* When logging a message about a unit systemd will now always
|
|
log the unit name in the message meta data.
|
|
|
|
* localectl will now also discover system locale data that is
|
|
not stored in locale archives, but directly unpacked.
|
|
|
|
* logind will no longer unconditionally use framebuffer
|
|
devices as seat masters, i.e. as devices that are required
|
|
to be existing before a seat is considered preset. Instead,
|
|
it will now look for all devices that are tagged as
|
|
"seat-master" in udev. By default framebuffer devices will
|
|
be marked as such, but depending on local systems other
|
|
devices might be marked as well. This may be used to
|
|
integrate graphics cards using closed source drivers (such
|
|
as NVidia ones) more nicely into logind. Note however, that
|
|
we recommend using the open source NVidia drivers instead,
|
|
and no udev rules for the closed-source drivers will be
|
|
shipped from us upstream.
|
|
|
|
Contributions from: Adam Williamson, Alessandro Crismani, Auke
|
|
Kok, Colin Walters, Daniel Wallace, Dave Reisner, David
|
|
Herrmann, David Strauss, Dimitrios Apostolou, Eelco Dolstra,
|
|
Eric Benoit, Giovanni Campagna, Hannes Reinecke, Henrik
|
|
Grindal Bakken, Hermann Gausterer, Kay Sievers, Lennart
|
|
Poettering, Lukas Nykryn, Mantas Mikulėnas, Marcel Holtmann,
|
|
Martin Pitt, Matthew Monaco, Michael Biebl, Michael Terry,
|
|
Michal Schmidt, Michal Sekletar, Michał Bartoszkiewicz, Oleg
|
|
Samarin, Pekka Lundstrom, Philip Nilsson, Ramkumar
|
|
Ramachandra, Richard Yao, Robert Millan, Sami Kerola, Shawn
|
|
Landden, Thomas Hindoe Paaboel Andersen, Thomas Jarosch,
|
|
Tollef Fog Heen, Tom Gundersen, Umut Tezduyar, Zbigniew
|
|
Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 196:
|
|
|
|
* udev gained support for loading additional device properties
|
|
from an indexed database that is keyed by vendor/product IDs
|
|
and similar device identifiers. For the beginning this
|
|
"hwdb" is populated with data from the well-known PCI and
|
|
USB database, but also includes PNP, ACPI and OID data. In
|
|
the longer run this indexed database shall grow into
|
|
becoming the one central database for non-essential
|
|
userspace device metadata. Previously, data from the PCI/USB
|
|
database was only attached to select devices, since the
|
|
lookup was a relatively expensive operation due to O(n) time
|
|
complexity (with n being the number of entries in the
|
|
database). Since this is now O(1), we decided to add in this
|
|
data for all devices where this is available, by
|
|
default. Note that the indexed database needs to be rebuilt
|
|
when new data files are installed. To achieve this you need
|
|
to update your packaging scripts to invoke "udevadm hwdb
|
|
--update" after installation of hwdb data files. For
|
|
RPM-based distributions we introduced the new
|
|
%udev_hwdb_update macro for this purpose.
|
|
|
|
* The Journal gained support for the "Message Catalog", an
|
|
indexed database to link up additional information with
|
|
journal entries. For further details please check:
|
|
|
|
http://www.freedesktop.org/wiki/Software/systemd/catalog
|
|
|
|
The indexed message catalog database also needs to be
|
|
rebuilt after installation of message catalog files. Use
|
|
"journalctl --update-catalog" for this. For RPM-based
|
|
distributions we introduced the %journal_catalog_update
|
|
macro for this purpose.
|
|
|
|
* The Python Journal bindings gained support for the standard
|
|
Python logging framework.
|
|
|
|
* The Journal API gained new functions for checking whether
|
|
the underlying file system of a journal file is capable of
|
|
properly reporting file change notifications, or whether
|
|
applications that want to reflect journal changes "live"
|
|
need to recheck journal files continuously in appropriate
|
|
time intervals.
|
|
|
|
* It is now possible to set the "age" field for tmpfiles
|
|
entries to 0, indicating that files matching this entry
|
|
shall always be removed when the directories are cleaned up.
|
|
|
|
* coredumpctl gained a new "gdb" verb which invokes gdb
|
|
right-away on the selected coredump.
|
|
|
|
* There's now support for "hybrid sleep" on kernels that
|
|
support this, in addition to "suspend" and "hibernate". Use
|
|
"systemctl hybrid-sleep" to make use of this.
|
|
|
|
* logind's HandleSuspendKey= setting (and related settings)
|
|
now gained support for a new "lock" setting to simply
|
|
request the screen lock on all local sessions, instead of
|
|
actually executing a suspend or hibernation.
|
|
|
|
* systemd will now mount the EFI variables file system by
|
|
default.
|
|
|
|
* Socket units now gained support for configuration of the
|
|
SMACK security label.
|
|
|
|
* timedatectl will now output the time of the last and next
|
|
daylight saving change.
|
|
|
|
* We dropped support for various legacy and distro-specific
|
|
concepts, such as insserv, early-boot SysV services
|
|
(i.e. those for non-standard runlevels such as 'b' or 'S')
|
|
or ArchLinux /etc/rc.conf support. We recommend the
|
|
distributions who still need support this to either continue
|
|
to maintain the necessary patches downstream, or find a
|
|
different solution. (Talk to us if you have questions!)
|
|
|
|
* Various systemd components will now bypass PolicyKit checks
|
|
for root and otherwise handle properly if PolicyKit is not
|
|
found to be around. This should fix most issues for
|
|
PolicyKit-less systems. Quite frankly this should have been
|
|
this way since day one. It is absolutely our intention to
|
|
make systemd work fine on PolicyKit-less systems, and we
|
|
consider it a bug if something does not work as it should if
|
|
PolicyKit is not around.
|
|
|
|
* For embedded systems it is now possible to build udev and
|
|
systemd without blkid and/or kmod support.
|
|
|
|
* "systemctl switch-root" is now capable of switching root
|
|
more than once. I.e. in addition to transitions from the
|
|
initrd to the host OS it is now possible to transition to
|
|
further OS images from the host. This is useful to implement
|
|
offline updating tools.
|
|
|
|
* Various other additions have been made to the RPM macros
|
|
shipped with systemd. Use %udev_rules_update() after
|
|
installing new udev rules files. %_udevhwdbdir,
|
|
%_udevrulesdir, %_journalcatalogdir, %_tmpfilesdir,
|
|
%_sysctldir are now available which resolve to the right
|
|
directories for packages to place various data files in.
|
|
|
|
* journalctl gained the new --full switch (in addition to
|
|
--all, to disable ellipsation for long messages.
|
|
|
|
Contributions from: Anders Olofsson, Auke Kok, Ben Boeckel,
|
|
Colin Walters, Cosimo Cecchi, Daniel Wallace, Dave Reisner,
|
|
Eelco Dolstra, Holger Hans Peter Freyther, Kay Sievers,
|
|
Chun-Yi Lee, Lekensteyn, Lennart Poettering, Mantas Mikulėnas,
|
|
Marti Raudsepp, Martin Pitt, Mauro Dreissig, Michael Biebl,
|
|
Michal Schmidt, Michal Sekletar, Miklos Vajna, Nis Martensen,
|
|
Oleksii Shevchuk, Olivier Brunel, Ramkumar Ramachandra, Thomas
|
|
Bächler, Thomas Hindoe Paaboel Andersen, Tom Gundersen, Tony
|
|
Camuso, Umut Tezduyar, Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 195:
|
|
|
|
* journalctl gained new --since= and --until= switches to
|
|
filter by time. It also now supports nice filtering for
|
|
units via --unit=/-u.
|
|
|
|
* Type=oneshot services may use ExecReload= and do the
|
|
right thing.
|
|
|
|
* The journal daemon now supports time-based rotation and
|
|
vacuuming, in addition to the usual disk-space based
|
|
rotation.
|
|
|
|
* The journal will now index the available field values for
|
|
each field name. This enables clients to show pretty drop
|
|
downs of available match values when filtering. The bash
|
|
completion of journalctl has been updated
|
|
accordingly. journalctl gained a new switch -F to list all
|
|
values a certain field takes in the journal database.
|
|
|
|
* More service events are now written as structured messages
|
|
to the journal, and made recognizable via message IDs.
|
|
|
|
* The timedated, localed and hostnamed mini-services which
|
|
previously only provided support for changing time, locale
|
|
and hostname settings from graphical DEs such as GNOME now
|
|
also have a minimal (but very useful) text-based client
|
|
utility each. This is probably the nicest way to changing
|
|
these settings from the command line now, especially since
|
|
it lists available options and is fully integrated with bash
|
|
completion.
|
|
|
|
* There's now a new tool "systemd-coredumpctl" to list and
|
|
extract coredumps from the journal.
|
|
|
|
* We now install a README each in /var/log/ and
|
|
/etc/rc.d/init.d explaining where the system logs and init
|
|
scripts went. This hopefully should help folks who go to
|
|
that dirs and look into the otherwise now empty void and
|
|
scratch their heads.
|
|
|
|
* When user-services are invoked (by systemd --user) the
|
|
$MANAGERPID env var is set to the PID of systemd.
|
|
|
|
* SIGRTMIN+24 when sent to a --user instance will now result
|
|
in immediate termination of systemd.
|
|
|
|
* gatewayd received numerous feature additions such as a
|
|
"follow" mode, for live syncing and filtering.
|
|
|
|
* browse.html now allows filtering and showing detailed
|
|
information on specific entries. Keyboard navigation and
|
|
mouse screen support has been added.
|
|
|
|
* gatewayd/journalctl now supports HTML5/JSON
|
|
Server-Sent-Events as output.
|
|
|
|
* The SysV init script compatibility logic will now
|
|
heuristically determine whether a script supports the
|
|
"reload" verb, and only then make this available as
|
|
"systemctl reload".
|
|
|
|
* "systemctl status --follow" has been removed, use "journalctl
|
|
-u" instead.
|
|
|
|
* journald.conf's RuntimeMinSize=, PersistentMinSize= settings
|
|
have been removed since they are hardly useful to be
|
|
configured.
|
|
|
|
* And I'd like to take the opportunity to specifically mention
|
|
Zbigniew for his great contributions. Zbigniew, you rock!
|
|
|
|
Contributions from: Andrew Eikum, Christian Hesse, Colin
|
|
Guthrie, Daniel J Walsh, Dave Reisner, Eelco Dolstra, Ferenc
|
|
Wágner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Mantas
|
|
Mikulėnas, Martin Mikkelsen, Martin Pitt, Michael Olbrich,
|
|
Michael Stapelberg, Michal Schmidt, Sebastian Ott, Thomas
|
|
Bächler, Umut Tezduyar, Will Woods, Wulf C. Krueger, Zbigniew
|
|
Jędrzejewski-Szmek, Сковорода Никита Андреевич
|
|
|
|
CHANGES WITH 194:
|
|
|
|
* If /etc/vconsole.conf is non-existent or empty we will no
|
|
longer load any console font or key map at boot by
|
|
default. Instead the kernel defaults will be left
|
|
intact. This is definitely the right thing to do, as no
|
|
configuration should mean no configuration, and hard-coding
|
|
font names that are different on all archs is probably a bad
|
|
idea. Also, the kernel default key map and font should be
|
|
good enough for most cases anyway, and mostly identical to
|
|
the userspace fonts/key maps we previously overloaded them
|
|
with. If distributions want to continue to default to a
|
|
non-kernel font or key map they should ship a default
|
|
/etc/vconsole.conf with the appropriate contents.
|
|
|
|
Contributions from: Colin Walters, Daniel J Walsh, Dave
|
|
Reisner, Kay Sievers, Lennart Poettering, Lukas Nykryn, Tollef
|
|
Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 193:
|
|
|
|
* journalctl gained a new --cursor= switch to show entries
|
|
starting from the specified location in the journal.
|
|
|
|
* We now enforce a size limit on journal entry fields exported
|
|
with "-o json" in journalctl. Fields larger than 4K will be
|
|
assigned null. This can be turned off with --all.
|
|
|
|
* An (optional) journal gateway daemon is now available as
|
|
"systemd-journal-gatewayd.service". This service provides
|
|
access to the journal via HTTP and JSON. This functionality
|
|
will be used to implement live log synchronization in both
|
|
pull and push modes, but has various other users too, such
|
|
as easy log access for debugging of embedded devices. Right
|
|
now it is already useful to retrieve the journal via HTTP:
|
|
|
|
# systemctl start systemd-journal-gatewayd.service
|
|
# wget http://localhost:19531/entries
|
|
|
|
This will download the journal contents in a
|
|
/var/log/messages compatible format. The same as JSON:
|
|
|
|
# curl -H"Accept: application/json" http://localhost:19531/entries
|
|
|
|
This service is also accessible via a web browser where a
|
|
single static HTML5 app is served that uses the JSON logic
|
|
to enable the user to do some basic browsing of the
|
|
journal. This will be extended later on. Here's an example
|
|
screenshot of this app in its current state:
|
|
|
|
http://0pointer.de/public/journal-gatewayd
|
|
|
|
Contributions from: Kay Sievers, Lennart Poettering, Robert
|
|
Milasan, Tom Gundersen
|
|
|
|
CHANGES WITH 192:
|
|
|
|
* The bash completion logic is now available for journalctl
|
|
too.
|
|
|
|
* We do not mount the "cpuset" controller anymore together with
|
|
"cpu" and "cpuacct", as "cpuset" groups generally cannot be
|
|
started if no parameters are assigned to it. "cpuset" hence
|
|
broke code that assumed it it could create "cpu" groups and
|
|
just start them.
|
|
|
|
* journalctl -f will now subscribe to terminal size changes,
|
|
and line break accordingly.
|
|
|
|
Contributions from: Dave Reisner, Kay Sievers, Lennart
|
|
Poettering, Lukas Nykrynm, Mirco Tischler, Václav Pavlín
|
|
|
|
CHANGES WITH 191:
|
|
|
|
* nspawn will now create a symlink /etc/localtime in the
|
|
container environment, copying the host's timezone
|
|
setting. Previously this has been done via a bind mount, but
|
|
since symlinks cannot be bind mounted this has now been
|
|
changed to create/update the appropriate symlink.
|
|
|
|
* journalctl -n's line number argument is now optional, and
|
|
will default to 10 if omitted.
|
|
|
|
* journald will now log the maximum size the journal files may
|
|
take up on disk. This is particularly useful if the default
|
|
built-in logic of determining this parameter from the file
|
|
system size is used. Use "systemctl status
|
|
systemd-journald.service" to see this information.
|
|
|
|
* The multi-seat X wrapper tool has been stripped down. As X
|
|
is now capable of enumerating graphics devices via udev in a
|
|
seat-aware way the wrapper is not strictly necessary
|
|
anymore. A stripped down temporary stop-gap is still shipped
|
|
until the upstream display managers have been updated to
|
|
fully support the new X logic. Expect this wrapper to be
|
|
removed entirely in one of the next releases.
|
|
|
|
* HandleSleepKey= in logind.conf has been split up into
|
|
HandleSuspendKey= and HandleHibernateKey=. The old setting
|
|
is not available anymore. X11 and the kernel are
|
|
distuingishing between these keys and we should too. This
|
|
also means the inhibition lock for these keys has been split
|
|
into two.
|
|
|
|
Contributions from: Dave Airlie, Eelco Dolstra, Lennart
|
|
Poettering, Lukas Nykryn, Václav Pavlín
|
|
|
|
CHANGES WITH 190:
|
|
|
|
* Whenever a unit changes state we will now log this to the
|
|
journal and show along the unit's own log output in
|
|
"systemctl status".
|
|
|
|
* ConditionPathIsMountPoint= can now properly detect bind
|
|
mount points too. (Previously, a bind mount of one file
|
|
system to another place in the same file system could not be
|
|
detected as mount, since they shared struct stat's st_dev
|
|
field.)
|
|
|
|
* We will now mount the cgroup controllers cpu, cpuacct,
|
|
cpuset and the controllers net_cls, net_prio together by
|
|
default.
|
|
|
|
* nspawn containers will now have a virtualized boot
|
|
ID. (i.e. /proc/sys/kernel/random/boot_id is now mounted
|
|
over with a randomized ID at container initialization). This
|
|
has the effect of making "journalctl -b" do the right thing
|
|
in a container.
|
|
|
|
* The JSON output journal serialization has been updated not
|
|
to generate "endless" list objects anymore, but rather one
|
|
JSON object per line. This is more in line how most JSON
|
|
parsers expect JSON objects. The new output mode
|
|
"json-pretty" has been added to provide similar output, but
|
|
neatly aligned for readability by humans.
|
|
|
|
* We dropped all explicit sync() invocations in the shutdown
|
|
code. The kernel does this implicitly anyway in the kernel
|
|
reboot() syscall. halt(8)'s -n option is now a compatibility
|
|
no-op.
|
|
|
|
* We now support virtualized reboot() in containers, as
|
|
supported by newer kernels. We will fall back to exit() if
|
|
CAP_SYS_REBOOT is not available to the container. Also,
|
|
nspawn makes use of this now and will actually reboot the
|
|
container if the containerized OS asks for that.
|
|
|
|
* journalctl will only show local log output by default
|
|
now. Use --merge (-m) to show remote log output, too.
|
|
|
|
* libsystemd-journal gained the new sd_journal_get_usage()
|
|
call to determine the current disk usage of all journal
|
|
files. This is exposed in the new "journalctl --disk-usage"
|
|
command.
|
|
|
|
* journald gained a new configuration setting SplitMode= in
|
|
journald.conf which may be used to control how user journals
|
|
are split off. See journald.conf(5) for details.
|
|
|
|
* A new condition type ConditionFileNotEmpty= has been added.
|
|
|
|
* tmpfiles' "w" lines now support file globbing, to write
|
|
multiple files at once.
|
|
|
|
* We added Python bindings for the journal submission
|
|
APIs. More Python APIs for a number of selected APIs will
|
|
likely follow. Note that we intend to add native bindings
|
|
only for the Python language, as we consider it common
|
|
enough to deserve bindings shipped within systemd. There are
|
|
various projects outside of systemd that provide bindings
|
|
for languages such as PHP or Lua.
|
|
|
|
* Many conditions will now resolve specifiers such as %i. In
|
|
addition, PathChanged= and related directives of .path units
|
|
now support specifiers as well.
|
|
|
|
* There's now a new RPM macro definition for the system preset
|
|
dir: %_presetdir.
|
|
|
|
* journald will now warn if it ca not forward a message to the
|
|
syslog daemon because its socket is full.
|
|
|
|
* timedated will no longer write or process /etc/timezone,
|
|
except on Debian. As we do not support late mounted /usr
|
|
anymore /etc/localtime always being a symlink is now safe,
|
|
and hence the information in /etc/timezone is not necessary
|
|
anymore.
|
|
|
|
* logind will now always reserve one VT for a text getty (VT6
|
|
by default). Previously if more than 6 X sessions where
|
|
started they took up all the VTs with auto-spawned gettys,
|
|
so that no text gettys were available anymore.
|
|
|
|
* udev will now automatically inform the btrfs kernel logic
|
|
about btrfs RAID components showing up. This should make
|
|
simple hotplug based btrfs RAID assembly work.
|
|
|
|
* PID 1 will now increase its RLIMIT_NOFILE to 64K by default
|
|
(but not for its children which will stay at the kernel
|
|
default). This should allow setups with a lot more listening
|
|
sockets.
|
|
|
|
* systemd will now always pass the configured timezone to the
|
|
kernel at boot. timedated will do the same when the timezone
|
|
is changed.
|
|
|
|
* logind's inhibition logic has been updated. By default,
|
|
logind will now handle the lid switch, the power and sleep
|
|
keys all the time, even in graphical sessions. If DEs want
|
|
to handle these events on their own they should take the new
|
|
handle-power-key, handle-sleep-key and handle-lid-switch
|
|
inhibitors during their runtime. A simple way to achiveve
|
|
that is to invoke the DE wrapped in an invocation of:
|
|
|
|
systemd-inhibit --what=handle-power-key:handle-sleep-key:handle-lid-switch ...
|
|
|
|
* Access to unit operations is now checked via SELinux taking
|
|
the unit file label and client process label into account.
|
|
|
|
* systemd will now notify the administrator in the journal
|
|
when he over-mounts a non-empty directory.
|
|
|
|
* There are new specifiers that are resolved in unit files,
|
|
for the host name (%H), the machine ID (%m) and the boot ID
|
|
(%b).
|
|
|
|
Contributions from: Allin Cottrell, Auke Kok, Brandon Philips,
|
|
Colin Guthrie, Colin Walters, Daniel J Walsh, Dave Reisner,
|
|
Eelco Dolstra, Jan Engelhardt, Kay Sievers, Lennart
|
|
Poettering, Lucas De Marchi, Lukas Nykryn, Mantas Mikulėnas,
|
|
Martin Pitt, Matthias Clasen, Michael Olbrich, Pierre Schmitz,
|
|
Shawn Landden, Thomas Hindoe Paaboel Andersen, Tom Gundersen,
|
|
Václav Pavlín, Yin Kangkai, Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 189:
|
|
|
|
* Support for reading structured kernel messages from
|
|
/dev/kmsg has now been added and is enabled by default.
|
|
|
|
* Support for reading kernel messages from /proc/kmsg has now
|
|
been removed. If you want kernel messages in the journal
|
|
make sure to run a recent kernel (>= 3.5) that supports
|
|
reading structured messages from /dev/kmsg (see
|
|
above). /proc/kmsg is now exclusive property of classic
|
|
syslog daemons again.
|
|
|
|
* The libudev API gained the new
|
|
udev_device_new_from_device_id() call.
|
|
|
|
* The logic for file system namespace (ReadOnlyDirectory=,
|
|
ReadWriteDirectoy=, PrivateTmp=) has been reworked not to
|
|
require pivot_root() anymore. This means fewer temporary
|
|
directories are created below /tmp for this feature.
|
|
|
|
* nspawn containers will now see and receive all submounts
|
|
made on the host OS below the root file system of the
|
|
container.
|
|
|
|
* Forward Secure Sealing is now supported for Journal files,
|
|
which provide cryptographical sealing of journal files so
|
|
that attackers cannot alter log history anymore without this
|
|
being detectable. Lennart will soon post a blog story about
|
|
this explaining it in more detail.
|
|
|
|
* There are two new service settings RestartPreventExitStatus=
|
|
and SuccessExitStatus= which allow configuration of exit
|
|
status (exit code or signal) which will be excepted from the
|
|
restart logic, resp. consider successful.
|
|
|
|
* journalctl gained the new --verify switch that can be used
|
|
to check the integrity of the structure of journal files and
|
|
(if Forward Secure Sealing is enabled) the contents of
|
|
journal files.
|
|
|
|
* nspawn containers will now be run with /dev/stdin, /dev/fd/
|
|
and similar symlinks pre-created. This makes running shells
|
|
as container init process a lot more fun.
|
|
|
|
* The fstab support can now handle PARTUUID= and PARTLABEL=
|
|
entries.
|
|
|
|
* A new ConditionHost= condition has been added to match
|
|
against the hostname (with globs) and machine ID. This is
|
|
useful for clusters where a single OS image is used to
|
|
provision a large number of hosts which shall run slightly
|
|
different sets of services.
|
|
|
|
* Services which hit the restart limit will now be placed in a
|
|
failure state.
|
|
|
|
Contributions from: Bertram Poettering, Dave Reisner, Huang
|
|
Hang, Kay Sievers, Lennart Poettering, Lukas Nykryn, Martin
|
|
Pitt, Simon Peeters, Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 188:
|
|
|
|
* When running in --user mode systemd will now become a
|
|
subreaper (PR_SET_CHILD_SUBREAPER). This should make the ps
|
|
tree a lot more organized.
|
|
|
|
* A new PartOf= unit dependency type has been introduced that
|
|
may be used to group services in a natural way.
|
|
|
|
* "systemctl enable" may now be used to enable instances of
|
|
services.
|
|
|
|
* journalctl now prints error log levels in red, and
|
|
warning/notice log levels in bright white. It also supports
|
|
filtering by log level now.
|
|
|
|
* cgtop gained a new -n switch (similar to top), to configure
|
|
the maximum number of iterations to run for. It also gained
|
|
-b, to run in batch mode (accepting no input).
|
|
|
|
* The suffix ".service" may now be omitted on most systemctl
|
|
command lines involving service unit names.
|
|
|
|
* There's a new bus call in logind to lock all sessions, as
|
|
well as a loginctl verb for it "lock-sessions".
|
|
|
|
* libsystemd-logind.so gained a new call sd_journal_perror()
|
|
that works similar to libc perror() but logs to the journal
|
|
and encodes structured information about the error number.
|
|
|
|
* /etc/crypttab entries now understand the new keyfile-size=
|
|
option.
|
|
|
|
* shutdown(8) now can send a (configurable) wall message when
|
|
a shutdown is cancelled.
|
|
|
|
* The mount propagation mode for the root file system will now
|
|
default to "shared", which is useful to make containers work
|
|
nicely out-of-the-box so that they receive new mounts from
|
|
the host. This can be undone locally by running "mount
|
|
--make-rprivate /" if needed.
|
|
|
|
* The prefdm.service file has been removed. Distributions
|
|
should maintain this unit downstream if they intend to keep
|
|
it around. However, we recommend writing normal unit files
|
|
for display managers instead.
|
|
|
|
* Since systemd is a crucial part of the OS we will now
|
|
default to a number of compiler switches that improve
|
|
security (hardening) such as read-only relocations, stack
|
|
protection, and suchlike.
|
|
|
|
* The TimeoutSec= setting for services is now split into
|
|
TimeoutStartSec= and TimeoutStopSec= to allow configuration
|
|
of individual time outs for the start and the stop phase of
|
|
the service.
|
|
|
|
Contributions from: Artur Zaprzala, Arvydas Sidorenko, Auke
|
|
Kok, Bryan Kadzban, Dave Reisner, David Strauss, Harald Hoyer,
|
|
Jim Meyering, Kay Sievers, Lennart Poettering, Mantas
|
|
Mikulėnas, Martin Pitt, Michal Schmidt, Michal Sekletar, Peter
|
|
Alfredsen, Shawn Landden, Simon Peeters, Terence Honles, Tom
|
|
Gundersen, Zbigniew Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 187:
|
|
|
|
* The journal and id128 C APIs are now fully documented as man
|
|
pages.
|
|
|
|
* Extra safety checks have been added when transitioning from
|
|
the initial RAM disk to the main system to avoid accidental
|
|
data loss.
|
|
|
|
* /etc/crypttab entries now understand the new keyfile-offset=
|
|
option.
|
|
|
|
* systemctl -t can now be used to filter by unit load state.
|
|
|
|
* The journal C API gained the new sd_journal_wait() call to
|
|
make writing synchronous journal clients easier.
|
|
|
|
* journalctl gained the new -D switch to show journals from a
|
|
specific directory.
|
|
|
|
* journalctl now displays a special marker between log
|
|
messages of two different boots.
|
|
|
|
* The journal is now explicitly flushed to /var via a service
|
|
systemd-journal-flush.service, rather than implicitly simply
|
|
by seeing /var/log/journal to be writable.
|
|
|
|
* journalctl (and the journal C APIs) can now match for much
|
|
more complex expressions, with alternatives and
|
|
disjunctions.
|
|
|
|
* When transitioning from the initial RAM disk to the main
|
|
system we will now kill all processes in a killing spree to
|
|
ensure no processes stay around by accident.
|
|
|
|
* Three new specifiers may be used in unit files: %u, %h, %s
|
|
resolve to the user name, user home directory resp. user
|
|
shell. This is useful for running systemd user instances.
|
|
|
|
* We now automatically rotate journal files if their data
|
|
object hash table gets a fill level > 75%. We also size the
|
|
hash table based on the configured maximum file size. This
|
|
together should lower hash collisions drastically and thus
|
|
speed things up a bit.
|
|
|
|
* journalctl gained the new "--header" switch to introspect
|
|
header data of journal files.
|
|
|
|
* A new setting SystemCallFilters= has been added to services
|
|
which may be used to apply blacklists or whitelists to
|
|
system calls. This is based on SECCOMP Mode 2 of Linux 3.5.
|
|
|
|
* nspawn gained a new --link-journal= switch (and quicker: -j)
|
|
to link the container journal with the host. This makes it
|
|
very easy to centralize log viewing on the host for all
|
|
guests while still keeping the journal files separated.
|
|
|
|
* Many bugfixes and optimizations
|
|
|
|
Contributions from: Auke Kok, Eelco Dolstra, Harald Hoyer, Kay
|
|
Sievers, Lennart Poettering, Malte Starostik, Paul Menzel, Rex
|
|
Tsai, Shawn Landden, Tom Gundersen, Ville Skyttä, Zbigniew
|
|
Jędrzejewski-Szmek
|
|
|
|
CHANGES WITH 186:
|
|
|
|
* Several tools now understand kernel command line arguments,
|
|
which are only read when run in an initial RAM disk. They
|
|
usually follow closely their normal counterparts, but are
|
|
prefixed with rd.
|
|
|
|
* There's a new tool to analyze the readahead files that are
|
|
automatically generated at boot. Use:
|
|
|
|
/usr/lib/systemd/systemd-readahead analyze /.readahead
|
|
|
|
* We now provide an early debug shell on tty9 if this enabled. Use:
|
|
|
|
systemctl enable debug-shell.service
|
|
|
|
* All plymouth related units have been moved into the Plymouth
|
|
package. Please make sure to upgrade your Plymouth version
|
|
as well.
|
|
|
|
* systemd-tmpfiles now supports getting passed the basename of
|
|
a configuration file only, in which case it will look for it
|
|
in all appropriate directories automatically.
|
|
|
|
* udevadm info now takes a /dev or /sys path as argument, and
|
|
does the right thing. Example:
|
|
|
|
udevadm info /dev/sda
|
|
udevadm info /sys/class/block/sda
|
|
|
|
* systemctl now prints a warning if a unit is stopped but a
|
|
unit that might trigger it continues to run. Example: a
|
|
service is stopped but the socket that activates it is left
|
|
running.
|
|
|
|
* "systemctl status" will now mention if the log output was
|
|
shortened due to rotation since a service has been started.
|
|
|
|
* The journal API now exposes functions to determine the
|
|
"cutoff" times due to rotation.
|
|
|
|
* journald now understands SIGUSR1 and SIGUSR2 for triggering
|
|
immediately flushing of runtime logs to /var if possible,
|
|
resp. for triggering immediate rotation of the journal
|
|
files.
|
|
|
|
* It is now considered an error if a service is attempted to
|
|
be stopped that is not loaded.
|
|
|
|
* XDG_RUNTIME_DIR now uses numeric UIDs instead of usernames.
|
|
|
|
* systemd-analyze now supports Python 3
|
|
|
|
* tmpfiles now supports cleaning up directories via aging
|
|
where the first level dirs are always kept around but
|
|
directories beneath it automatically aged. This is enabled
|
|
by prefixing the age field with '~'.
|
|
|
|
* Seat objects now expose CanGraphical, CanTTY properties
|
|
which is required to deal with very fast bootups where the
|
|
display manager might be running before the graphics drivers
|
|
completed initialization.
|
|
|
|
* Seat objects now expose a State property.
|
|
|
|
* We now include RPM macros for service enabling/disabling
|
|
based on the preset logic. We recommend RPM based
|
|
distributions to make use of these macros if possible. This
|
|
makes it simpler to reuse RPM spec files across
|
|
distributions.
|
|
|
|
* We now make sure that the collected systemd unit name is
|
|
always valid when services log to the journal via
|
|
STDOUT/STDERR.
|
|
|
|
* There's a new man page kernel-command-line(7) detailing all
|
|
command line options we understand.
|
|
|
|
* The fstab generator may now be disabled at boot by passing
|
|
fstab=0 on the kernel command line.
|
|
|
|
* A new kernel command line option modules-load= is now understood
|
|
to load a specific kernel module statically, early at boot.
|
|
|
|
* Unit names specified on the systemctl command line are now
|
|
automatically escaped as needed. Also, if file system or
|
|
device paths are specified they are automatically turned
|
|
into the appropriate mount or device unit names. Example:
|
|
|
|
systemctl status /home
|
|
systemctl status /dev/sda
|
|
|
|
* The SysVConsole= configuration option has been removed from
|
|
system.conf parsing.
|
|
|
|
* The SysV search path is no longer exported on the D-Bus
|
|
Manager object.
|
|
|
|
* The Names= option is been removed from unit file parsing.
|
|
|
|
* There's a new man page bootup(7) detailing the boot process.
|
|
|
|
* Every unit and every generator we ship with systemd now
|
|
comes with full documentation. The self-explanatory boot is
|
|
complete.
|
|
|
|
* A couple of services gained "systemd-" prefixes in their
|
|
name if they wrap systemd code, rather than only external
|
|
code. Among them fsck@.service which is now
|
|
systemd-fsck@.service.
|
|
|
|
* The HaveWatchdog property has been removed from the D-Bus
|
|
Manager object.
|
|
|
|
* systemd.confirm_spawn= on the kernel command line should now
|
|
work sensibly.
|
|
|
|
* There's a new man page crypttab(5) which details all options
|
|
we actually understand.
|
|
|
|
* systemd-nspawn gained a new --capability= switch to pass
|
|
additional capabilities to the container.
|
|
|
|
* timedated will now read known NTP implementation unit names
|
|
from /usr/lib/systemd/ntp-units.d/*.list,
|
|
systemd-timedated-ntp.target has been removed.
|
|
|
|
* journalctl gained a new switch "-b" that lists log data of
|
|
the current boot only.
|
|
|
|
* The notify socket is in the abstract namespace again, in
|
|
order to support daemons which chroot() at start-up.
|
|
|
|
* There is a new Storage= configuration option for journald
|
|
which allows configuration of where log data should go. This
|
|
also provides a way to disable journal logging entirely, so
|
|
that data collected is only forwarded to the console, the
|
|
kernel log buffer or another syslog implementation.
|
|
|
|
* Many bugfixes and optimizations
|
|
|
|
Contributions from: Auke Kok, Colin Guthrie, Dave Reisner,
|
|
David Strauss, Eelco Dolstra, Kay Sievers, Lennart Poettering,
|
|
Lukas Nykryn, Michal Schmidt, Michal Sekletar, Paul Menzel,
|
|
Shawn Landden, Tom Gundersen
|
|
|
|
CHANGES WITH 185:
|
|
|
|
* "systemctl help <unit>" now shows the man page if one is
|
|
available.
|
|
|
|
* Several new man pages have been added.
|
|
|
|
* MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=,
|
|
MaxLevelConsole= can now be specified in
|
|
journald.conf. These options allow reducing the amount of
|
|
data stored on disk or forwarded by the log level.
|
|
|
|
* TimerSlackNSec= can now be specified in system.conf for
|
|
PID1. This allows system-wide power savings.
|
|
|
|
Contributions from: Dave Reisner, Kay Sievers, Lauri Kasanen,
|
|
Lennart Poettering, Malte Starostik, Marc-Antoine Perennou,
|
|
Matthias Clasen
|
|
|
|
CHANGES WITH 184:
|
|
|
|
* logind is now capable of (optionally) handling power and
|
|
sleep keys as well as the lid switch.
|
|
|
|
* journalctl now understands the syntax "journalctl
|
|
/usr/bin/avahi-daemon" to get all log output of a specific
|
|
daemon.
|
|
|
|
* CapabilityBoundingSet= in system.conf now also influences
|
|
the capability bound set of usermode helpers of the kernel.
|
|
|
|
Contributions from: Daniel Drake, Daniel J. Walsh, Gert
|
|
Michael Kulyk, Harald Hoyer, Jean Delvare, Kay Sievers,
|
|
Lennart Poettering, Matthew Garrett, Matthias Clasen, Paul
|
|
Menzel, Shawn Landden, Tero Roponen, Tom Gundersen
|
|
|
|
CHANGES WITH 183:
|
|
|
|
* Note that we skipped 139 releases here in order to set the
|
|
new version to something that is greater than both udev's
|
|
and systemd's most recent version number.
|
|
|
|
* udev: all udev sources are merged into the systemd source tree now.
|
|
All future udev development will happen in the systemd tree. It
|
|
is still fully supported to use the udev daemon and tools without
|
|
systemd running, like in initramfs or other init systems. Building
|
|
udev though, will require the *build* of the systemd tree, but
|
|
udev can be properly *run* without systemd.
|
|
|
|
* udev: /lib/udev/devices/ are not read anymore; systemd-tmpfiles
|
|
should be used to create dead device nodes as workarounds for broken
|
|
subsystems.
|
|
|
|
* udev: RUN+="socket:..." and udev_monitor_new_from_socket() is
|
|
no longer supported. udev_monitor_new_from_netlink() needs to be
|
|
used to subscribe to events.
|
|
|
|
* udev: when udevd is started by systemd, processes which are left
|
|
behind by forking them off of udev rules, are unconditionally cleaned
|
|
up and killed now after the event handling has finished. Services or
|
|
daemons must be started as systemd services. Services can be
|
|
pulled-in by udev to get started, but they can no longer be directly
|
|
forked by udev rules.
|
|
|
|
* udev: the daemon binary is called systemd-udevd now and installed
|
|
in /usr/lib/systemd/. Standalone builds or non-systemd systems need
|
|
to adapt to that, create symlink, or rename the binary after building
|
|
it.
|
|
|
|
* libudev no longer provides these symbols:
|
|
udev_monitor_from_socket()
|
|
udev_queue_get_failed_list_entry()
|
|
udev_get_{dev,sys,run}_path()
|
|
The versions number was bumped and symbol versioning introduced.
|
|
|
|
* systemd-loginctl and systemd-journalctl have been renamed
|
|
to loginctl and journalctl to match systemctl.
|
|
|
|
* The config files: /etc/systemd/systemd-logind.conf and
|
|
/etc/systemd/systemd-journald.conf have been renamed to
|
|
logind.conf and journald.conf. Package updates should rename
|
|
the files to the new names on upgrade.
|
|
|
|
* For almost all files the license is now LGPL2.1+, changed
|
|
from the previous GPL2.0+. Exceptions are some minor stuff
|
|
of udev (which will be changed to LGPL2.1 eventually, too),
|
|
and the MIT licensed sd-daemon.[ch] library that is suitable
|
|
to be used as drop-in files.
|
|
|
|
* systemd and logind now handle system sleep states, in
|
|
particular suspending and hibernating.
|
|
|
|
* logind now implements a sleep/shutdown/idle inhibiting logic
|
|
suitable for a variety of uses. Soonishly Lennart will blog
|
|
about this in more detail.
|
|
|
|
* var-run.mount and var-lock.mount are no longer provided
|
|
(which prevously bind mounted these directories to their new
|
|
places). Distributions which have not converted these
|
|
directories to symlinks should consider stealing these files
|
|
from git history and add them downstream.
|
|
|
|
* We introduced the Documentation= field for units and added
|
|
this to all our shipped units. This is useful to make it
|
|
easier to explore the boot and the purpose of the various
|
|
units.
|
|
|
|
* All smaller setup units (such as
|
|
systemd-vconsole-setup.service) now detect properly if they
|
|
are run in a container and are skipped when
|
|
appropriate. This guarantees an entirely noise-free boot in
|
|
Linux container environments such as systemd-nspawn.
|
|
|
|
* A framework for implementing offline system updates is now
|
|
integrated, for details see:
|
|
http://freedesktop.org/wiki/Software/systemd/SystemUpdates
|
|
|
|
* A new service type Type=idle is available now which helps us
|
|
avoiding ugly interleaving of getty output and boot status
|
|
messages.
|
|
|
|
* There's now a system-wide CapabilityBoundingSet= option to
|
|
globally reduce the set of capabilities for the
|
|
system. This is useful to drop CAP_SYS_MKNOD, CAP_SYS_RAWIO,
|
|
CAP_NET_RAW, CAP_SYS_MODULE, CAP_SYS_TIME, CAP_SYS_PTRACE or
|
|
even CAP_NET_ADMIN system-wide for secure systems.
|
|
|
|
* There are now system-wide DefaultLimitXXX= options to
|
|
globally change the defaults of the various resource limits
|
|
for all units started by PID 1.
|
|
|
|
* Harald Hoyer's systemd test suite has been integrated into
|
|
systemd which allows easy testing of systemd builds in qemu
|
|
and nspawn. (This is really awesome! Ask us for details!)
|
|
|
|
* The fstab parser is now implemented as generator, not inside
|
|
of PID 1 anymore.
|
|
|
|
* systemctl will now warn you if .mount units generated from
|
|
/etc/fstab are out of date due to changes in fstab that
|
|
have not been read by systemd yet.
|
|
|
|
* systemd is now suitable for usage in initrds. Dracut has
|
|
already been updated to make use of this. With this in place
|
|
initrds get a slight bit faster but primarily are much
|
|
easier to introspect and debug since "systemctl status" in
|
|
the host system can be used to introspect initrd services,
|
|
and the journal from the initrd is kept around too.
|
|
|
|
* systemd-delta has been added, a tool to explore differences
|
|
between user/admin configuration and vendor defaults.
|
|
|
|
* PrivateTmp= now affects both /tmp and /var/tmp.
|
|
|
|
* Boot time status messages are now much prettier and feature
|
|
proper english language. Booting up systemd has never been
|
|
so sexy.
|
|
|
|
* Read-ahead pack files now include the inode number of all
|
|
files to pre-cache. When the inode changes the pre-caching
|
|
is not attempted. This should be nicer to deal with updated
|
|
packages which might result in changes of read-ahead
|
|
patterns.
|
|
|
|
* We now temporaritly lower the kernel's read_ahead_kb variable
|
|
when collecting read-ahead data to ensure the kernel's
|
|
built-in read-ahead does not add noise to our measurements
|
|
of necessary blocks to pre-cache.
|
|
|
|
* There's now RequiresMountsFor= to add automatic dependencies
|
|
for all mounts necessary for a specific file system path.
|
|
|
|
* MountAuto= and SwapAuto= have been removed from
|
|
system.conf. Mounting file systems at boot has to take place
|
|
in systemd now.
|
|
|
|
* nspawn now learned a new switch --uuid= to set the machine
|
|
ID on the command line.
|
|
|
|
* nspawn now learned the -b switch to automatically search
|
|
for an init system.
|
|
|
|
* vt102 is now the default TERM for serial TTYs, upgraded from
|
|
vt100.
|
|
|
|
* systemd-logind now works on VT-less systems.
|
|
|
|
* The build tree has been reorganized. The individual
|
|
components now have directories of their own.
|
|
|
|
* A new condition type ConditionPathIsReadWrite= is now available.
|
|
|
|
* nspawn learned the new -C switch to create cgroups for the
|
|
container in other hierarchies.
|
|
|
|
* We now have support for hardware watchdogs, configurable in
|
|
system.conf.
|
|
|
|
* The scheduled shutdown logic now has a public API.
|
|
|
|
* We now mount /tmp as tmpfs by default, but this can be
|
|
masked and /etc/fstab can override it.
|
|
|
|
* Since udisks does not make use of /media anymore we are not
|
|
mounting a tmpfs on it anymore.
|
|
|
|
* journalctl gained a new --local switch to only interleave
|
|
locally generated journal files.
|
|
|
|
* We can now load the IMA policy at boot automatically.
|
|
|
|
* The GTK tools have been split off into a systemd-ui.
|
|
|
|
Contributions from: Andreas Schwab, Auke Kok, Ayan George,
|
|
Colin Guthrie, Daniel Mack, Dave Reisner, David Ward, Elan
|
|
Ruusamäe, Frederic Crozat, Gergely Nagy, Guillermo Vidal,
|
|
Hannes Reinecke, Harald Hoyer, Javier Jardón, Kay Sievers,
|
|
Lennart Poettering, Lucas De Marchi, Léo Gillot-Lamure,
|
|
Marc-Antoine Perennou, Martin Pitt, Matthew Monaco, Maxim
|
|
A. Mikityanskiy, Michael Biebl, Michael Olbrich, Michal
|
|
Schmidt, Nis Martensen, Patrick McCarty, Roberto Sassu, Shawn
|
|
Landden, Sjoerd Simons, Sven Anders, Tollef Fog Heen, Tom
|
|
Gundersen
|
|
|
|
CHANGES WITH 44:
|
|
|
|
* This is mostly a bugfix release
|
|
|
|
* Support optional initialization of the machine ID from the
|
|
KVM or container configured UUID.
|
|
|
|
* Support immediate reboots with "systemctl reboot -ff"
|
|
|
|
* Show /etc/os-release data in systemd-analyze output
|
|
|
|
* Many bugfixes for the journal, including endianness fixes and
|
|
ensuring that disk space enforcement works
|
|
|
|
* sd-login.h is C++ comptaible again
|
|
|
|
* Extend the /etc/os-release format on request of the Debian
|
|
folks
|
|
|
|
* We now refuse non-UTF8 strings used in various configuration
|
|
and unit files. This is done to ensure we do not pass invalid
|
|
data over D-Bus or expose it elsewhere.
|
|
|
|
* Register Mimo USB Screens as suitable for automatic seat
|
|
configuration
|
|
|
|
* Read SELinux client context from journal clients in a race
|
|
free fashion
|
|
|
|
* Reorder configuration file lookup order. /etc now always
|
|
overrides /run in order to allow the administrator to always
|
|
and unconditionally override vendor supplied or
|
|
automatically generated data.
|
|
|
|
* The various user visible bits of the journal now have man
|
|
pages. We still lack man pages for the journal API calls
|
|
however.
|
|
|
|
* We now ship all man pages in HTML format again in the
|
|
tarball.
|
|
|
|
Contributions from: Dave Reisner, Dirk Eibach, Frederic
|
|
Crozat, Harald Hoyer, Kay Sievers, Lennart Poettering, Marti
|
|
Raudsepp, Michal Schmidt, Shawn Landden, Tero Roponen, Thierry
|
|
Reding
|
|
|
|
CHANGES WITH 43:
|
|
|
|
* This is mostly a bugfix release
|
|
|
|
* systems lacking /etc/os-release are no longer supported.
|
|
|
|
* Various functionality updates to libsystemd-login.so
|
|
|
|
* Track class of PAM logins to distuingish greeters from
|
|
normal user logins.
|
|
|
|
Contributions from: Kay Sievers, Lennart Poettering, Michael
|
|
Biebl
|
|
|
|
CHANGES WITH 42:
|
|
|
|
* This is an important bugfix release for v41.
|
|
|
|
* Building man pages is now optional which should be useful
|
|
for those building systemd from git but unwilling to install
|
|
xsltproc.
|
|
|
|
* Watchdog support for supervising services is now usable. In
|
|
a future release support for hardware watchdogs
|
|
(i.e. /dev/watchdog) will be added building on this.
|
|
|
|
* Service start rate limiting is now configurable and can be
|
|
turned off per service. When a start rate limit is hit a
|
|
reboot can automatically be triggered.
|
|
|
|
* New CanReboot(), CanPowerOff() bus calls in systemd-logind.
|
|
|
|
Contributions from: Benjamin Franzke, Bill Nottingham,
|
|
Frederic Crozat, Lennart Poettering, Michael Olbrich, Michal
|
|
Schmidt, Michał Górny, Piotr Drąg
|
|
|
|
CHANGES WITH 41:
|
|
|
|
* The systemd binary is installed /usr/lib/systemd/systemd now;
|
|
An existing /sbin/init symlink needs to be adapted with the
|
|
package update.
|
|
|
|
* The code that loads kernel modules has been ported to invoke
|
|
libkmod directly, instead of modprobe. This means we do not
|
|
support systems with module-init-tools anymore.
|
|
|
|
* Watchdog support is now already useful, but still not
|
|
complete.
|
|
|
|
* A new kernel command line option systemd.setenv= is
|
|
understood to set system wide environment variables
|
|
dynamically at boot.
|
|
|
|
* We now limit the set of capabilities of systemd-journald.
|
|
|
|
* We now set SIGPIPE to ignore by default, since it only is
|
|
useful in shell pipelines, and has little use in general
|
|
code. This can be disabled with IgnoreSIPIPE=no in unit
|
|
files.
|
|
|
|
Contributions from: Benjamin Franzke, Kay Sievers, Lennart
|
|
Poettering, Michael Olbrich, Michal Schmidt, Tom Gundersen,
|
|
William Douglas
|
|
|
|
CHANGES WITH 40:
|
|
|
|
* This is mostly a bugfix release
|
|
|
|
* We now expose the reason why a service failed in the
|
|
"Result" D-Bus property.
|
|
|
|
* Rudimentary service watchdog support (will be completed over
|
|
the next few releases.)
|
|
|
|
* When systemd forks off in order execute some service we will
|
|
now immediately changes its argv[0] to reflect which process
|
|
it will execute. This is useful to minimize the time window
|
|
with a generic argv[0], which makes bootcharts more useful
|
|
|
|
Contributions from: Alvaro Soliverez, Chris Paulson-Ellis, Kay
|
|
Sievers, Lennart Poettering, Michael Olbrich, Michal Schmidt,
|
|
Mike Kazantsev, Ray Strode
|
|
|
|
CHANGES WITH 39:
|
|
|
|
* This is mostly a test release, but incorporates many
|
|
bugfixes.
|
|
|
|
* New systemd-cgtop tool to show control groups by their
|
|
resource usage.
|
|
|
|
* Linking against libacl for ACLs is optional again. If
|
|
disabled, support tracking device access for active logins
|
|
goes becomes unavailable, and so does access to the user
|
|
journals by the respective users.
|
|
|
|
* If a group "adm" exists, journal files are automatically
|
|
owned by them, thus allow members of this group full access
|
|
to the system journal as well as all user journals.
|
|
|
|
* The journal now stores the SELinux context of the logging
|
|
client for all entries.
|
|
|
|
* Add C++ inclusion guards to all public headers
|
|
|
|
* New output mode "cat" in the journal to print only text
|
|
messages, without any meta data like date or time.
|
|
|
|
* Include tiny X server wrapper as a temporary stop-gap to
|
|
teach XOrg udev display enumeration. This is used by display
|
|
managers such as gdm, and will go away as soon as XOrg
|
|
learned native udev hotplugging for display devices.
|
|
|
|
* Add new systemd-cat tool for executing arbitrary programs
|
|
with STDERR/STDOUT connected to the journal. Can also act as
|
|
BSD logger replacement, and does so by default.
|
|
|
|
* Optionally store all locally generated coredumps in the
|
|
journal along with meta data.
|
|
|
|
* systemd-tmpfiles learnt four new commands: n, L, c, b, for
|
|
writing short strings to files (for usage for /sys), and for
|
|
creating symlinks, character and block device nodes.
|
|
|
|
* New unit file option ControlGroupPersistent= to make cgroups
|
|
persistent, following the mechanisms outlined in
|
|
http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups
|
|
|
|
* Support multiple local RTCs in a sane way
|
|
|
|
* No longer monopolize IO when replaying readahead data on
|
|
rotating disks, since we might starve non-file-system IO to
|
|
death, since fanotify() will not see accesses done by blkid,
|
|
or fsck.
|
|
|
|
* Do not show kernel threads in systemd-cgls anymore, unless
|
|
requested with new -k switch.
|
|
|
|
Contributions from: Dan Horák, Kay Sievers, Lennart
|
|
Poettering, Michal Schmidt
|
|
|
|
CHANGES WITH 38:
|
|
|
|
* This is mostly a test release, but incorporates many
|
|
bugfixes.
|
|
|
|
* The git repository moved to:
|
|
git://anongit.freedesktop.org/systemd/systemd
|
|
ssh://git.freedesktop.org/git/systemd/systemd
|
|
|
|
* First release with the journal
|
|
http://0pointer.de/blog/projects/the-journal.html
|
|
|
|
* The journal replaces both systemd-kmsg-syslogd and
|
|
systemd-stdout-bridge.
|
|
|
|
* New sd_pid_get_unit() API call in libsystemd-logind
|
|
|
|
* Many systemadm clean-ups
|
|
|
|
* Introduce remote-fs-pre.target which is ordered before all
|
|
remote mounts and may be used to start services before all
|
|
remote mounts.
|
|
|
|
* Added Mageia support
|
|
|
|
* Add bash completion for systemd-loginctl
|
|
|
|
* Actively monitor PID file creation for daemons which exit in
|
|
the parent process before having finished writing the PID
|
|
file in the daemon process. Daemons which do this need to be
|
|
fixed (i.e. PID file creation must have finished before the
|
|
parent exits), but we now react a bit more gracefully to them.
|
|
|
|
* Add colourful boot output, mimicking the well-known output
|
|
of existing distributions.
|
|
|
|
* New option PassCredentials= for socket units, for
|
|
compatibility with a recent kernel ABI breakage.
|
|
|
|
* /etc/rc.local is now hooked in via a generator binary, and
|
|
thus will no longer act as synchronization point during
|
|
boot.
|
|
|
|
* systemctl list-unit-files now supports --root=.
|
|
|
|
* systemd-tmpfiles now understands two new commands: z, Z for
|
|
relabelling files according to the SELinux database. This is
|
|
useful to apply SELinux labels to specific files in /sys,
|
|
among other things.
|
|
|
|
* Output of SysV services is now forwarded to both the console
|
|
and the journal by default, not only just the console.
|
|
|
|
* New man pages for all APIs from libsystemd-login.
|
|
|
|
* The build tree got reorganized and a the build system is a
|
|
lot more modular allowing embedded setups to specifically
|
|
select the components of systemd they are interested in.
|
|
|
|
* Support for Linux systems lacking the kernel VT subsystem is
|
|
restored.
|
|
|
|
* configure's --with-rootdir= got renamed to
|
|
--with-rootprefix= to follow the naming used by udev and
|
|
kmod
|
|
|
|
* Unless specified otherwise we will now install to /usr instead
|
|
of /usr/local by default.
|
|
|
|
* Processes with '@' in argv[0][0] are now excluded from the
|
|
final shut-down killing spree, following the logic explained
|
|
in:
|
|
http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons
|
|
|
|
* All processes remaining in a service cgroup when we enter
|
|
the START or START_PRE states are now killed with
|
|
SIGKILL. That means it is no longer possible to spawn
|
|
background processes from ExecStart= lines (which was never
|
|
supported anyway, and bad style).
|
|
|
|
* New PropagateReloadTo=/PropagateReloadFrom= options to bind
|
|
reloading of units together.
|
|
|
|
Contributions from: Bill Nottingham, Daniel J. Walsh, Dave
|
|
Reisner, Dexter Morgan, Gregs Gregs, Jonathan Nieder, Kay
|
|
Sievers, Lennart Poettering, Michael Biebl, Michal Schmidt,
|
|
Michał Górny, Ran Benita, Thomas Jarosch, Tim Waugh, Tollef
|
|
Fog Heen, Tom Gundersen, Zbigniew Jędrzejewski-Szmek
|