summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-09-27 23:24:17 +0200
committerLennart Poettering <lennart@poettering.net>2010-09-27 23:24:17 +0200
commit9f151f29fd37d9fdd3aad303cf0489482522918f (patch)
treea2acbf1463ebd49e558a9f1edeef18187f5392bd
parent6ccb1b44295edfbd4f7bc0211fe55ad765ef2af3 (diff)
service: don't create sysv order deps on merged units
-rw-r--r--src/service.c9
-rw-r--r--src/unit.c5
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)