diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-09-27 23:24:17 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-09-27 23:24:17 +0200 |
commit | 9f151f29fd37d9fdd3aad303cf0489482522918f (patch) | |
tree | a2acbf1463ebd49e558a9f1edeef18187f5392bd /src | |
parent | 6ccb1b44295edfbd4f7bc0211fe55ad765ef2af3 (diff) |
service: don't create sysv order deps on merged units
Diffstat (limited to 'src')
-rw-r--r-- | src/service.c | 9 | ||||
-rw-r--r-- | src/unit.c | 5 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/service.c b/src/service.c index 797f285774..5706d7c490 100644 --- a/src/service.c +++ b/src/service.c @@ -239,9 +239,9 @@ static char *sysv_translate_name(const char *name) { /* Drop Debian-style .sh suffix */ strcpy(stpcpy(r, name) - 3, ".service"); #ifdef TARGET_ARCH - else if (startswith(name, "@")) - /* Drop Arch-style background prefix */ - strcpy(stpcpy(r, name + 1), ".service"); + else if (startswith(name, "@")) + /* Drop Arch-style background prefix */ + strcpy(stpcpy(r, name + 1), ".service"); #endif else /* Normal init scripts */ @@ -326,6 +326,9 @@ static int sysv_fix_order(Service *s) { if (s == t) continue; + if (t->meta.load_state != UNIT_LOADED) + continue; + if (t->sysv_start_priority < 0) continue; diff --git a/src/unit.c b/src/unit.c index 5a451c57c2..5960c277b7 100644 --- a/src/unit.c +++ b/src/unit.c @@ -578,7 +578,7 @@ const char *unit_description(Unit *u) { if (u->meta.description) return u->meta.description; - return u->meta.id; + return strna(u->meta.id); } void unit_dump(Unit *u, FILE *f, const char *prefix) { @@ -1403,6 +1403,9 @@ int unit_add_dependency(Unit *u, UnitDependency d, Unit *other, bool add_referen assert(d >= 0 && d < _UNIT_DEPENDENCY_MAX); assert(other); + u = unit_follow_merge(u); + other = unit_follow_merge(other); + /* We won't allow dependencies on ourselves. We will not * consider them an error however. */ if (u == other) |