summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorMike Yuan <me@yhndnzj.com>2023-05-14 17:48:25 +0800
committerMike Yuan <me@yhndnzj.com>2023-05-15 15:04:38 +0800
commit38f901791f3c4b1cbd04b71323bbef2fdab65f83 (patch)
treefb03f9eb4c298a754f6e11393b2065012fa4f801 /src/core
parent62281c78bb0ef77dafb2cad14c1216c313417a23 (diff)
downloadsystemd-38f901791f3c4b1cbd04b71323bbef2fdab65f83.tar.gz
unit-file: support UpheldBy= in [Install] settings (adding Upholds= deps
from .upholds/) Closes #26896
Diffstat (limited to 'src/core')
-rw-r--r--src/core/load-dropin.c6
-rw-r--r--src/core/load-fragment-gperf.gperf.in1
2 files changed, 6 insertions, 1 deletions
diff --git a/src/core/load-dropin.c b/src/core/load-dropin.c
index 53d2a3daa1..fd45744261 100644
--- a/src/core/load-dropin.c
+++ b/src/core/load-dropin.c
@@ -88,7 +88,7 @@ int unit_load_dropin(Unit *u) {
assert(u);
- /* Load dependencies from .wants and .requires directories */
+ /* Load dependencies from .wants, .requires and .upholds directories */
r = process_deps(u, UNIT_WANTS, ".wants");
if (r < 0)
return r;
@@ -97,6 +97,10 @@ int unit_load_dropin(Unit *u) {
if (r < 0)
return r;
+ r = process_deps(u, UNIT_UPHOLDS, ".upholds");
+ if (r < 0)
+ return r;
+
/* Load .conf dropins */
r = unit_find_dropin_paths(u, &l);
if (r <= 0)
diff --git a/src/core/load-fragment-gperf.gperf.in b/src/core/load-fragment-gperf.gperf.in
index 110bccb7ad..2a3c2c2cb8 100644
--- a/src/core/load-fragment-gperf.gperf.in
+++ b/src/core/load-fragment-gperf.gperf.in
@@ -580,5 +580,6 @@ Scope.OOMPolicy, config_parse_oom_policy,
Install.Alias, NULL, 0, 0
Install.WantedBy, NULL, 0, 0
Install.RequiredBy, NULL, 0, 0
+Install.UpheldBy, NULL, 0, 0
Install.Also, NULL, 0, 0
Install.DefaultInstance, NULL, 0, 0