summaryrefslogtreecommitdiff
path: root/src/core/slice.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-07-01 00:03:57 +0200
committerLennart Poettering <lennart@poettering.net>2013-07-01 00:18:00 +0200
commit6c12b52e19640747e96f89d85422941a23dc6b29 (patch)
tree735f7aa8c36d8e30827f36e3891032a92cab6f2d /src/core/slice.c
parenta00963a2e4e98c0e4ef477b63b70c5e71d65fdc1 (diff)
core: add new "scope" unit type for making a unit of pre-existing processes
"Scope" units are very much like service units, however with the difference that they are created from pre-existing processes, rather than processes that systemd itself forks off. This means they are generated programmatically via the bus API as transient units rather than from static configuration read from disk. Also, they do not provide execution-time parameters, as at the time systemd adds the processes to the scope unit they already exist and the parameters cannot be applied anymore. The primary benefit of this new unit type is to create arbitrary cgroups for worker-processes forked off an existing service. This commit also adds a a new mode to "systemd-run" to run the specified processes in a scope rather then a transient service.
Diffstat (limited to 'src/core/slice.c')
-rw-r--r--src/core/slice.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/slice.c b/src/core/slice.c
index 557f829088..40d416e35e 100644
--- a/src/core/slice.c
+++ b/src/core/slice.c
@@ -103,7 +103,10 @@ static int slice_add_default_dependencies(Slice *s) {
assert(s);
/* Make sure slices are unloaded on shutdown */
- r = unit_add_dependency_by_name(UNIT(s), UNIT_CONFLICTS, SPECIAL_SHUTDOWN_TARGET, NULL, true);
+ r = unit_add_two_dependencies_by_name(
+ UNIT(s),
+ UNIT_BEFORE, UNIT_CONFLICTS,
+ SPECIAL_SHUTDOWN_TARGET, NULL, true);
if (r < 0)
return r;