summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Pitt <martin.pitt@ubuntu.com>2016-08-02 14:56:45 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-08-02 08:56:45 -0400
commit98d2d46876c08d6f2ae63284ec5a28f90cbbb8ac (patch)
tree7e04519cb1a70b4992f2f84faf656a51d1fbaf60
parent7633f8ef371a0992374956437fb7bb8189156b10 (diff)
units: add graphical-session-pre.target user unit (#3848)
This complements graphical-session.target for services which set up the environment (e. g. dbus-update-activation-environment) and need to run before the actual graphical session.
-rw-r--r--Makefile.am3
-rw-r--r--man/systemd.special.xml13
-rw-r--r--units/user/graphical-session-pre.target14
3 files changed, 29 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 7dd021b56a..763b16289d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -574,7 +574,8 @@ dist_userunit_DATA = \
units/user/basic.target \
units/user/default.target \
units/user/exit.target \
- units/user/graphical-session.target
+ units/user/graphical-session.target \
+ units/user/graphical-session-pre.target
nodist_userunit_DATA = \
units/user/systemd-exit.service
diff --git a/man/systemd.special.xml b/man/systemd.special.xml
index 18142598cb..d977298cd8 100644
--- a/man/systemd.special.xml
+++ b/man/systemd.special.xml
@@ -927,6 +927,19 @@ PartOf=graphical-session.target
</programlisting>
</example>
</refsect2>
+
+ <refsect2>
+ <title>graphical-session-pre.target</title>
+
+ <para>This target contains services which set up the environment or
+ global configuration of a graphical session, such as SSH/GPG agents
+ (which need to export an environment variable into all desktop processes)
+ or migration of obsolete d-conf keys after an OS upgrade (which needs to
+ happen before starting any process that might use them). This target must
+ be started before starting a graphical session
+ like <filename>gnome-session.target</filename>.</para>
+ </refsect2>
+
</refsect1>
<refsect1>
diff --git a/units/user/graphical-session-pre.target b/units/user/graphical-session-pre.target
new file mode 100644
index 0000000000..86d15aff33
--- /dev/null
+++ b/units/user/graphical-session-pre.target
@@ -0,0 +1,14 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Session services which should run early before the graphical session is brought up
+Documentation=man:systemd.special(7)
+Requires=basic.target
+Before=graphical-session.target
+RefuseManualStart=yes
+StopWhenUnneeded=yes