summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--src/core/service.c26
-rw-r--r--units/user/basic.target13
-rw-r--r--units/user/default.target2
4 files changed, 20 insertions, 22 deletions
diff --git a/Makefile.am b/Makefile.am
index 069583cfd4..aed8c326a7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -460,6 +460,7 @@ nodist_systemunit_DATA = \
units/systemd-nspawn@.service
dist_userunit_DATA = \
+ units/user/basic.target \
units/user/default.target \
units/user/exit.target
diff --git a/src/core/service.c b/src/core/service.c
index 6fbde2b8f2..23810b39a9 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -1138,28 +1138,10 @@ static int service_add_default_dependencies(Service *s) {
* majority of services. */
/* First, pull in base system */
- if (UNIT(s)->manager->running_as == SYSTEMD_SYSTEM) {
- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
- SPECIAL_BASIC_TARGET, NULL, true);
- if (r < 0)
- return r;
-
- } else if (UNIT(s)->manager->running_as == SYSTEMD_USER) {
- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
- SPECIAL_SOCKETS_TARGET, NULL, true);
- if (r < 0)
- return r;
-
- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
- SPECIAL_TIMERS_TARGET, NULL, true);
- if (r < 0)
- return r;
-
- r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
- SPECIAL_PATHS_TARGET, NULL, true);
- if (r < 0)
- return r;
- }
+ r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_AFTER, UNIT_REQUIRES,
+ SPECIAL_BASIC_TARGET, NULL, true);
+ if (r < 0)
+ return r;
/* Second, activate normal shutdown */
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_BEFORE, UNIT_CONFLICTS,
diff --git a/units/user/basic.target b/units/user/basic.target
new file mode 100644
index 0000000000..b74d13c29c
--- /dev/null
+++ b/units/user/basic.target
@@ -0,0 +1,13 @@
+# 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=Basic System
+Documentation=man:systemd.special(7)
+Wants=sockets.target timers.target paths.target
+After=sockets.target timers.target paths.target
+RefuseManualStart=yes
diff --git a/units/user/default.target b/units/user/default.target
index 71eed51b09..9853c33b40 100644
--- a/units/user/default.target
+++ b/units/user/default.target
@@ -8,4 +8,6 @@
[Unit]
Description=Default
Documentation=man:systemd.special(7)
+Requires=basic.target
+After=basic.target
AllowIsolate=yes