From 94b3057571eed817e8aa0dd1b016ec7988328132 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Mon, 27 Apr 2009 12:04:33 +0000 Subject: Add the noshutdown keyword to special case the shutdown. --- src/rc/rc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/rc/rc.c b/src/rc/rc.c index 0be79011..9b4a7e5c 100644 --- a/src/rc/rc.c +++ b/src/rc/rc.c @@ -573,7 +573,7 @@ runlevel_config(const char *service, const char *level) } static void -do_stop_services(const char *newlevel, bool parallel) +do_stop_services(const char *newlevel, bool parallel, bool going_down) { pid_t pid; RC_STRING *service, *svc1, *svc2; @@ -602,7 +602,8 @@ do_stop_services(const char *newlevel, bool parallel) continue; } kwords = rc_deptree_depend(deptree, service->value, "keyword"); - if (rc_stringlist_find(kwords, "nostop")) + if (rc_stringlist_find(kwords, "nostop") || + (going_down && rc_stringlist_find(kwords, "noshutdown"))) nstop = true; else nstop = false; @@ -1063,7 +1064,7 @@ main(int argc, char **argv) /* Now stop the services that shouldn't be running */ if (stop_services) - do_stop_services(newlevel, parallel); + do_stop_services(newlevel, parallel, going_down); /* Wait for our services to finish */ wait_for_services(); -- cgit v1.2.3