diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-03-18 05:26:25 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-03-18 05:26:25 +0100 |
commit | 9700edb4e836f95815ee3237e5bc8d224b5014d7 (patch) | |
tree | e637a6dee71b95315c54c3a65fc1eade9a350397 /src/service.c | |
parent | a0e155d440173ba524918cb3800350b452952082 (diff) |
service: pull in sysv facility targets from the sysv units, not the other way round
For an explanation see:
http://lists.freedesktop.org/archives/systemd-devel/2011-March/001692.html
Diffstat (limited to 'src/service.c')
-rw-r--r-- | src/service.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/service.c b/src/service.c index f0c72f2c27..1735a96c80 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)); |