On 31 December 2013 12:55, Colin Watson <cjwatson@debian.org> wrote:Riffing off this more than replying to it.
> The criticisms of Upstart's event model in the systemd position
> statement simply do not make sense to me. Events model how things
> actually happen in reality; dependencies are artificial constructions on
> top of them, and making them work requires the plethora of different
> directives in systemd (e.g. Wants, which is sort of a non-depending
> dependency) to avoid blocking the boot process on a single failing
> service.
I tend to think dependencies and events are both useful ways of
describing when to start up parts of the system. In particular, it
seems like:
- when a network is connected, start web server
- when a usb disk is connected, mount it
- when a VPN is started, sync various things
are best described by an "event" model, while:
- in order to run GNOME, logind must be started
- in order to run logind, dbus must be available
- as part of making the system ready for a user, network-manager
should be running
make the most sense when described by "dependencies". In particular,
in many of those cases, the reverse might not be true: For debugging,
I might want to start the web server manually without connecting the
network; or I might want logind running without GNOME, or
network-manager running without the other parts of my desktop
environment.