When stopping, stop services that need our provide as well, #79.
This commit is contained in:
parent
6d5d655b52
commit
a89171ee9b
@ -103,6 +103,7 @@ static RC_STRINGLIST *types_nu = NULL;
|
|||||||
static RC_STRINGLIST *types_nua = NULL;
|
static RC_STRINGLIST *types_nua = NULL;
|
||||||
static RC_STRINGLIST *types_m = NULL;
|
static RC_STRINGLIST *types_m = NULL;
|
||||||
static RC_STRINGLIST *types_mua = NULL;
|
static RC_STRINGLIST *types_mua = NULL;
|
||||||
|
static RC_STRINGLIST *types_p = NULL;
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
static void (*selinux_run_init_old)(void);
|
static void (*selinux_run_init_old)(void);
|
||||||
@ -335,6 +336,7 @@ static void cleanup(void)
|
|||||||
rc_stringlist_free(types_nua);
|
rc_stringlist_free(types_nua);
|
||||||
rc_stringlist_free(types_m);
|
rc_stringlist_free(types_m);
|
||||||
rc_stringlist_free(types_mua);
|
rc_stringlist_free(types_mua);
|
||||||
|
rc_stringlist_free(types_p);
|
||||||
|
|
||||||
rc_plugin_unload();
|
rc_plugin_unload();
|
||||||
rc_deptree_free(deptree);
|
rc_deptree_free(deptree);
|
||||||
@ -649,6 +651,9 @@ static void setup_types(void)
|
|||||||
rc_stringlist_add(types_mua, "needsme");
|
rc_stringlist_add(types_mua, "needsme");
|
||||||
rc_stringlist_add(types_mua, "usesme");
|
rc_stringlist_add(types_mua, "usesme");
|
||||||
rc_stringlist_add(types_mua, "beforeme");
|
rc_stringlist_add(types_mua, "beforeme");
|
||||||
|
|
||||||
|
types_p = rc_stringlist_new();
|
||||||
|
rc_stringlist_add(types_p, "iprovide");
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool in_list(RC_STRINGLIST *list, char *string)
|
static bool in_list(RC_STRINGLIST *list, char *string)
|
||||||
@ -947,9 +952,15 @@ static void svc_stop(bool deps)
|
|||||||
if (! types_m)
|
if (! types_m)
|
||||||
setup_types();
|
setup_types();
|
||||||
|
|
||||||
tmplist = NULL;
|
tmplist = rc_deptree_depends(deptree, types_p, applet_list,
|
||||||
services = rc_deptree_depends(deptree, types_m, applet_list,
|
runlevel, 0);
|
||||||
|
if (!tmplist)
|
||||||
|
tmplist = rc_stringlist_new();
|
||||||
|
rc_stringlist_add(tmplist, applet);
|
||||||
|
services = rc_deptree_depends(deptree, types_m, tmplist,
|
||||||
runlevel, depoptions);
|
runlevel, depoptions);
|
||||||
|
rc_stringlist_free(tmplist);
|
||||||
|
tmplist = NULL;
|
||||||
if (services) {
|
if (services) {
|
||||||
TAILQ_FOREACH_REVERSE(svc, services, rc_stringlist, entries) {
|
TAILQ_FOREACH_REVERSE(svc, services, rc_stringlist, entries) {
|
||||||
state = rc_service_state(svc->value);
|
state = rc_service_state(svc->value);
|
||||||
|
Loading…
Reference in New Issue
Block a user