X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fservice.c;h=1735a96c80b930844d9d24d2d94e4d63692ed24e;hb=3731f1eaa8f9df60db469b665246a02d5e31d92b;hp=f0c72f2c2712c94779f689ef3e14274a405a303f;hpb=177b3ffedbfc1aea839324edeb1f35a1a754ef5b;p=elogind.git diff --git a/src/service.c b/src/service.c index f0c72f2c2..1735a96c8 100644 --- a/src/service.c +++ b/src/service.c @@ -655,16 +655,21 @@ static int service_load_sysv_path(Service *s, const char *path) { if (unit_name_to_type(m) == UNIT_SERVICE) r = unit_add_name(u, m); - else { - r = unit_add_dependency_by_name(u, UNIT_BEFORE, m, NULL, true); - - if (s->sysv_enabled) { - int k; - - if ((k = unit_add_dependency_by_name_inverse(u, UNIT_WANTS, m, NULL, true)) < 0) - r = k; - } - } + else + /* NB: SysV targets + * which are provided + * by a service are + * pulled in by the + * services, as an + * indication that the + * generic service is + * now available. This + * is strictly + * one-way. The + * targets do NOT pull + * in the SysV + * services! */ + r = unit_add_two_dependencies_by_name(u, UNIT_BEFORE, UNIT_WANTS, m, NULL, true); if (r < 0) log_error("[%s:%u] Failed to add LSB Provides name %s, ignoring: %s", path, line, m, strerror(-r));