summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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