aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/librc/librc-depend.c10
-rw-r--r--src/rc/runscript.c6
2 files changed, 6 insertions, 10 deletions
diff --git a/src/librc/librc-depend.c b/src/librc/librc-depend.c
index d74fd342..59284344 100644
--- a/src/librc/librc-depend.c
+++ b/src/librc/librc-depend.c
@@ -310,13 +310,15 @@ static char **get_provided (const rc_depinfo_t *deptree,
return (providers.list);
}
- /* If we're strict, then only use what we have in our runlevel
- * and bootlevel */
- if (options & RC_DEP_STRICT)
+ /* If we're strict or startng, then only use what we have in our
+ * runlevel and bootlevel. If we starting then check cold-plugged too. */
+ if (options & RC_DEP_STRICT || options & RC_DEP_START)
{
STRLIST_FOREACH (dt->services, service, i)
if (rc_service_in_runlevel (service, runlevel) ||
- rc_service_in_runlevel (service, bootlevel))
+ rc_service_in_runlevel (service, bootlevel) ||
+ (options & RC_DEP_START &&
+ rc_service_state (service) & RC_SERVICE_COLDPLUGGED))
rc_strlist_add (&providers.list, service);
if (providers.list)
diff --git a/src/rc/runscript.c b/src/rc/runscript.c
index 83f20868..a50edf2c 100644
--- a/src/rc/runscript.c
+++ b/src/rc/runscript.c
@@ -674,9 +674,6 @@ static void svc_start (bool deps)
if (rc_conf_yesno ("rc_depend_strict"))
depoptions |= RC_DEP_STRICT;
- if (rc_runlevel_starting ())
- depoptions |= RC_DEP_START;
-
if (deps) {
if (! deptree && ((deptree = _rc_deptree_load (NULL)) == NULL))
eerrorx ("failed to load deptree");
@@ -892,9 +889,6 @@ static void svc_stop (bool deps)
if (rc_conf_yesno ("rc_depend_strict"))
depoptions |= RC_DEP_STRICT;
- if (rc_runlevel_stopping ())
- depoptions |= RC_DEP_STOP;
-
if (! deptree && ((deptree = _rc_deptree_load (NULL)) == NULL))
eerrorx ("failed to load deptree");