diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2015-09-24 17:35:30 +0100 |
---|---|---|
committer | Gaƫl Bonithon <gael@xfce.org> | 2021-12-27 17:50:24 +0100 |
commit | 1c2102e590edd202e048395f66bf7ed2df71bd4e (patch) | |
tree | 0310b539c9bd987c95f2f2c267ab13d677ac96a2 | |
parent | 3ea0a2d0f93f71e69c7b5db39e7c3a72dfea918a (diff) | |
download | tumbler-1c2102e590edd202e048395f66bf7ed2df71bd4e.tar.gz |
Add a corresponding systemd user service for the D-Bus session services
When running under a systemd user session, this results in tumblerd
being placed in in its own cgroup, whereas previously it would be a
child of dbus-daemon in the dbus.service cgroup.
It also avoids races between up to three separate instances of the
same executable being started for its three names, which could result
in spurious activation failures if they are used in quick succession,
similar to <https://bugs.freedesktop.org/show_bug.cgi?id=53220> in
telepathy-mission-control.
Closes #14.
-rw-r--r-- | tumblerd/Makefile.am | 7 | ||||
-rw-r--r-- | tumblerd/org.xfce.Tumbler.Cache1.service.in | 1 | ||||
-rw-r--r-- | tumblerd/org.xfce.Tumbler.Manager1.service.in | 1 | ||||
-rw-r--r-- | tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in | 1 | ||||
-rw-r--r-- | tumblerd/tumblerd.service.in | 9 |
5 files changed, 19 insertions, 0 deletions
diff --git a/tumblerd/Makefile.am b/tumblerd/Makefile.am index f649d9b..1c3e76e 100644 --- a/tumblerd/Makefile.am +++ b/tumblerd/Makefile.am @@ -94,6 +94,11 @@ service_in_files = \ service_DATA = $(service_in_files:.service.in=.service) +systemd_userdir = $(prefix)/lib/systemd/user +systemd_user_in_files = tumblerd.service.in + +systemd_user_DATA = $(systemd_user_in_files:.service.in=.service) + %.service: %.service.in sed -e "s,\@libdir\@,$(libdir),g" \ -e "s,\@TUMBLER_VERSION_API\@,$(TUMBLER_VERSION_API),g" < $< > $@ @@ -103,9 +108,11 @@ conf_DATA = \ tumbler.rc CLEANFILES = \ + $(systemd_user_DATA) \ $(service_DATA) EXTRA_DIST = \ + $(systemd_user_in_files) \ $(service_in_files) \ tumbler.rc \ tumbler-cache-service-dbus.xml \ diff --git a/tumblerd/org.xfce.Tumbler.Cache1.service.in b/tumblerd/org.xfce.Tumbler.Cache1.service.in index db5fb1a..9221dcc 100644 --- a/tumblerd/org.xfce.Tumbler.Cache1.service.in +++ b/tumblerd/org.xfce.Tumbler.Cache1.service.in @@ -1,3 +1,4 @@ [D-BUS Service] Name=org.freedesktop.thumbnails.Cache1 Exec=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd +SystemdService=tumblerd.service diff --git a/tumblerd/org.xfce.Tumbler.Manager1.service.in b/tumblerd/org.xfce.Tumbler.Manager1.service.in index 4eb029b..cb070b9 100644 --- a/tumblerd/org.xfce.Tumbler.Manager1.service.in +++ b/tumblerd/org.xfce.Tumbler.Manager1.service.in @@ -1,3 +1,4 @@ [D-BUS Service] Name=org.freedesktop.thumbnails.Manager1 Exec=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd +SystemdService=tumblerd.service diff --git a/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in b/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in index 18b96f7..6dc6d91 100644 --- a/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in +++ b/tumblerd/org.xfce.Tumbler.Thumbnailer1.service.in @@ -1,3 +1,4 @@ [D-BUS Service] Name=org.freedesktop.thumbnails.Thumbnailer1 Exec=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd +SystemdService=tumblerd.service diff --git a/tumblerd/tumblerd.service.in b/tumblerd/tumblerd.service.in new file mode 100644 index 0000000..66c176a --- /dev/null +++ b/tumblerd/tumblerd.service.in @@ -0,0 +1,9 @@ +[Unit] +Description=Thumbnailing service + +[Service] +Type=dbus +# This is deliberately the bus name that is the last one to be claimed; +# if this is claimed, then everything is ready +BusName=org.freedesktop.thumbnails.Thumbnailer1 +ExecStart=@libdir@/tumbler-@TUMBLER_VERSION_API@/tumblerd |