mirror of
https://github.com/systemd/systemd.git
synced 2025-03-25 18:50:18 +03:00
sysv: properly handle Provides LSB header
This commit is contained in:
parent
dbd4655d89
commit
bd77d0fccc
10
service.c
10
service.c
@ -370,7 +370,13 @@ static int service_load_sysv_path(Service *s, const char *path) {
|
||||
if (r == 0)
|
||||
continue;
|
||||
|
||||
r = unit_add_name(u, m);
|
||||
if (unit_name_to_type(m) == UNIT_SERVICE)
|
||||
r = unit_add_name(u, m);
|
||||
else {
|
||||
if ((r = unit_add_dependency_by_name_inverse(u, UNIT_REQUIRES, m)) >= 0)
|
||||
r = unit_add_dependency_by_name(u, UNIT_BEFORE, m);
|
||||
}
|
||||
|
||||
free(m);
|
||||
|
||||
if (r < 0)
|
||||
@ -568,7 +574,7 @@ static int service_init(Unit *u) {
|
||||
return r;
|
||||
}
|
||||
|
||||
/* Load a classic init script as a fallback, if we couldn*t find anything */
|
||||
/* Load a classic init script as a fallback, if we couldn't find anything */
|
||||
if (r == 0)
|
||||
if ((r = service_load_sysv(s)) <= 0) {
|
||||
service_done(u);
|
||||
|
13
unit.c
13
unit.c
@ -978,6 +978,19 @@ int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int unit_add_dependency_by_name_inverse(Unit *u, UnitDependency d, const char *name) {
|
||||
Unit *other;
|
||||
int r;
|
||||
|
||||
if ((r = manager_load_unit(u->meta.manager, name, &other)) < 0)
|
||||
return r;
|
||||
|
||||
if ((r = unit_add_dependency(other, d, u)) < 0)
|
||||
return r;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int set_unit_path(const char *p) {
|
||||
char *cwd, *c;
|
||||
int r;
|
||||
|
1
unit.h
1
unit.h
@ -249,6 +249,7 @@ void unit_free(Unit *u);
|
||||
int unit_add_name(Unit *u, const char *name);
|
||||
int unit_add_dependency(Unit *u, UnitDependency d, Unit *other);
|
||||
int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name);
|
||||
int unit_add_dependency_by_name_inverse(Unit *u, UnitDependency d, const char *name);
|
||||
|
||||
int unit_add_cgroup(Unit *u, CGroupBonding *b);
|
||||
int unit_add_cgroup_from_text(Unit *u, const char *name);
|
||||
|
Loading…
x
Reference in New Issue
Block a user