From 0bc824be78848cdf12f19aff4144666dc4114858 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 7 Apr 2010 20:28:44 +0200 Subject: sysv: add basic.target dependencies only for normal init scripts --- service.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'service.c') diff --git a/service.c b/service.c index c5e3bc13b4..8a0034936f 100644 --- a/service.c +++ b/service.c @@ -592,9 +592,17 @@ static int service_load_sysv_path(Service *s, const char *path, UnitLoadState *n if ((r = sysv_exec_commands(s)) < 0) goto finish; - if ((r = unit_add_dependency_by_name(u, UNIT_REQUIRES, SPECIAL_BASIC_TARGET)) < 0 || - (r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_BASIC_TARGET)) < 0) - goto finish; + if (!s->sysv_runlevels || chars_intersect("12345", s->sysv_runlevels)) { + /* If there a runlevels configured for this service + * but none of the standard ones, then we assume this + * is some special kind of service (which might be + * needed for early boot) and don't create any links + * to it. */ + + if ((r = unit_add_dependency_by_name(u, UNIT_REQUIRES, SPECIAL_BASIC_TARGET)) < 0 || + (r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_BASIC_TARGET)) < 0) + goto finish; + } *new_state = UNIT_LOADED; r = 0; -- cgit v1.2.3-54-g00ecf