diff options
-rw-r--r-- | src/librc/librc-depend.c | 10 | ||||
-rw-r--r-- | src/rc/runscript.c | 6 |
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"); |