[systemd-devel] [ANNOUNCE] systemd 3

Lennart Poettering lennart at poettering.net
Tue Jul 13 14:49:46 PDT 2010


Heya!

http://www.freedesktop.org/software/systemd/systemd-3.tar.bz2

This release fixes quite a few things and adds a number of new features.

Note that I dropped the libcgroup dependency with this release. The
majority of cgroup operations systemd uses are not available in
libcgroup at this time, which caused me to augment the functionality of
libcgroup bit by bit by native implementations in the system sources. A
few days ago only three interfaces of libcgroup were still used by
systemd, and since they weren't the most complex parts I have then
decided to reimplement them in systemd, to make that dependency
unnecessary. Also libcgroup still has some unresolved locking issues and
other problems I'd really would have liked to see fixed before I could
sleep calm at night.

This means that there is now a certain amount of duplication between
libcgroup and systemd when it comes to access to the cgroup file
system. However, I don't think this is too bad, given that implementing
this in systemd allowed me to use quite a bit of utility functionality
already available elsewhere in systemd and also since we dont need to
cope for all uses libcgroup has to deal with we can shortcut quite a few
things libcgroup cannot shortcut (for example: we know that our
hierarchy is mounted to /cgroup/systemd, we don't have to check
/proc/mounts for that, and so on). The net effect is that our codebase
barely increased in size when I reimplemented this functionality
natively.

The libcgroup folks are aware of the problems we discovered when using
it in systemd, so I hope that while right now libcgroup does not match
our needs in systemd it will eventuall gain the functionality and offer
them to its users.

This release needs dbus 1.3.2 from git, and udev 160.

Note that native systemd support has already been merged into quite a
number of projects now. I have recently started to post my remaining
patches to the various projects, so expect them there soon too. I'll
also begin to encourage people to include systemd service files for the
remaining Fedora default install services now, i.e. will push for this
on fedora-devel. It would be great if other distributors could start
this push, too.

Changes:

Kay Sievers (1):
      units: SUSE - set COLD_BOOT to skip own boot.d/ handling on shutdown

Lennart Poettering (74):
      install: properly parse --realize=reload
      main: make it possible to run a system daemon along side an aloready running one for testing purposes
      socket: fix loading of .service files for .socket files
      update fixme
      build-sys: drop special name hack for dbus.service since a native service file is now shipped upstream dbus
      man: update daemon man page a little
      systemctl: show connection counters only for Accept=yes sockets
      units: introduce umount.target for unmounting all file systems
      automount: refuse automounts for the root file system
      units: pull in shutdown.target and umount.target when entering emergency mode
      mount: add implicit umount.target conflicts only in system mode
      execute: add ability to configure the kill signal
      main: add a few more useful diagnostic log messages
      snapshot: fix deserialization
      service: allow immediate stopping while starting
      units: turn shutdown dependencies from Requires into Wants to make things a bit more robust
      systemctl: show exec status of all exited programs
      unit: trim cgroups when going down
      cgroup: make cgroup controller name a constant
      cgroup: kill processes, not tasks and other cgroup changes
      dbus: suppress duplicate message when reusing bus for system and session
      manager: introduce unit path cache to minimize disk accesses
      manager: free dbus error when ignoring it
      service: fix minor memory leak
      systemctl: move status further down
      dbus: use private connections wherever possible
      socket: pass minimal abstract socket names
      systemctl: turn --replace into --fail
      dbus: don't hit an assert if we sent a changed signal for something not in the dbus queue (i.e. because it was deleted before it was fully created
      dbus: get rid of last non-private busses
      units: turn Wants=shutdown back into Requires=shutdown to avoid removal of jobs due to the impact minimizer
      execute: use right logger socket
      install: fix wrong dbus connection shutdown
      sd-daemon: fix abstract namespace sockaddr for notification socket
      build-sys: require udev 160 to fix notify socket abstract namespace sockaddr length
      execute: optionally ignore return status of invoked commands
      service: trim cgroups if services that are "active" but "exited"
      unit: introduce IgnoreDependencyFailure=
      cgroup: implement cg_get_path natively
      cgroup: reimplement the last bit of libcgroup functionality natively
      pam: remove leftover libcgroup inclusion
      update fixme
      execute: close inherited fds earlier
      util: fix error handling in acquire_terminal()
      util: reset terminal even harder
      execute: reword comment
      service: allow input from terminal when executing more than one start-pre or stop-post command
      execute: inherit from original input, not the fixed up
      mount: add automatic start ordering dependencies for mounts
      units: introduce emergency.target
      units: add missing units
      units: rely only on isolate to remove running services when entering rescue/emergency modes
      socket: when the socket is supposed to stop, don't accept any connections anymore
      units: fix ordering problem
      socket: when going down, flush all queued sockets
      units: introduce bluetooth.target/printer.target which are activated if the right hardware is plugged in
      units: dm is an awful piece of work
      device: properly create dependencies
      unit: retroactively start dependencies for job-less units too
      units: make maximum unit name longer, since DM names manager to hit the limit
      units: fix minor typo
      update fixme
      udev: ignore dynamic ram/loop block devices
      udev: use prettier subsystem paths for bluetooth devices, too
      units: add missing target files
      main: replace --running-as= by --session and --system do mimic related tools and D-Bus
      cgroup: treat non-existing cgroups like empty ones, to deal with races
      unit: disable retroactive starting/stopping of units when deserializing
      install: implement systemd-install realize
      main: introduce -D as quick acess to debugging
      manager: always allow stopping of units that failed to load
      systemctl: introduce try-restart and reload-or-restart commands
      units: update other distro units to recent fedora changes
      build-sys: bump release

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the systemd-devel mailing list