-
Using the facility added in the previous commit, we can add systemd user service files for all plugins and know when they have started up. This is roughly based on the work previously done by Iain Lane <iain@orangesquash.org.uk> and Bastien Nocera hadess@hadess.net>. For each g-s-d process we have a service and a target file. This separation only exists to contain dependency failures which would cause an OnFailure action to trigger and is needed so that we can use OnFailure for the gnome-session fail-whale (gnome-session-failed.target). In general, the approach taken is that we start g-s-d processes after gnome-session-initialized.target and before gnome-session.target. We want to be able to selectively start the services only when one or more dependencies are there, or even mask out services under some conditions. The approach taken is the following: * To mask a service, use a Conflicts entry. This is e.g. used to not start certain services in GDM using Conflicts=gnome-session@gnome-login.target * To depend on multiple targets to be up and running to start, we set each of these targets in Requisite/After/PartOf/WantedBy. We always do this for gnome-session-initialized.target but this method is extensible to any number of further targets (e.g. bluetooth.target)
50eccb08