summaryrefslogtreecommitdiff
path: root/src/rc
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2009-04-26 21:16:05 +0000
committerRoy Marples <roy@marples.name>2009-04-26 21:16:05 +0000
commiteaa32c75c9bba7af0ec842d82f56a6862bbc83db (patch)
tree74b4175dd95127d5819444807722e30dd3e5792d /src/rc
parent2b866f264fa2ea9cda891018234414c4f4942eb8 (diff)
downloadopenrc-eaa32c75c9bba7af0ec842d82f56a6862bbc83db.tar.gz
openrc-eaa32c75c9bba7af0ec842d82f56a6862bbc83db.tar.bz2
openrc-eaa32c75c9bba7af0ec842d82f56a6862bbc83db.tar.xz
Add the nostop keyword so that we don't stop the network init script by default.
Diffstat (limited to 'src/rc')
-rw-r--r--src/rc/rc.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c
index 0336264..0a4fba1 100644
--- a/src/rc/rc.c
+++ b/src/rc/rc.c
@@ -577,10 +577,10 @@ do_stop_services(const char *newlevel, bool parallel)
{
pid_t pid;
RC_STRING *service, *svc1, *svc2;
- RC_STRINGLIST *deporder, *tmplist;
+ RC_STRINGLIST *deporder, *tmplist, *kwords;
RC_SERVICE state;
RC_STRINGLIST *nostop;
- bool crashed;
+ bool crashed, nstop;
if (!types_n) {
types_n = rc_stringlist_new();
@@ -601,6 +601,14 @@ do_stop_services(const char *newlevel, bool parallel)
rc_service_mark(service->value, RC_SERVICE_FAILED);
continue;
}
+ kwords = rc_deptree_depend(deptree, service->value, "keyword");
+ if (rc_stringlist_find(kwords, "nostop"))
+ nstop = true;
+ else
+ nstop = false;
+ rc_stringlist_free(kwords);
+ if (nstop)
+ continue;
/* If the service has crashed, skip futher checks and just stop
it */