diff options
author | Roy Marples <roy@marples.name> | 2009-04-27 09:06:30 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2009-04-27 09:06:30 +0000 |
commit | 338c93733d238f78cbad4b9d96f8592edf86af13 (patch) | |
tree | 76256a47a47a2e0735d754f1119034a755dd5ecc /src/rc | |
parent | e70a1429564a8fce5036c351b010a47dbb6c28b7 (diff) |
Fix the nstop keyword.
Diffstat (limited to 'src/rc')
-rw-r--r-- | src/rc/rc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c index 0a4fba11..0be79011 100644 --- a/src/rc/rc.c +++ b/src/rc/rc.c @@ -607,8 +607,10 @@ do_stop_services(const char *newlevel, bool parallel) else nstop = false; rc_stringlist_free(kwords); - if (nstop) + if (nstop) { + rc_service_mark(service->value, RC_SERVICE_FAILED); continue; + } /* If the service has crashed, skip futher checks and just stop it */ @@ -687,7 +689,9 @@ do_start_services(bool parallel) TAILQ_FOREACH(service, start_services, entries) { state = rc_service_state(service->value); - if (!(state & (RC_SERVICE_STOPPED | RC_SERVICE_FAILED))) { + if (state & RC_SERVICE_FAILED) + continue; + if (!(state & RC_SERVICE_STOPPED)) { if (crashed && rc_service_daemons_crashed(service->value)) rc_service_mark(service->value, |