diff options
-rw-r--r-- | nitro.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/nitro.c b/nitro.c index 935818d..4106bc8 100644 --- a/nitro.c +++ b/nitro.c @@ -618,12 +618,10 @@ process_step(int i, enum process_events ev) case PROC_FATAL: case PROC_DELAY: + case PROC_DOWN: services[i].state = PROC_DOWN; services[i].timeout = 0; services[i].deadline = 0; - - case PROC_DOWN: - /* ignore, is down */ break; } break; @@ -942,7 +940,10 @@ do_shutdown(int state) int b = add_service("SYS"); services[b].state = PROC_ONESHOT; process_step(b, EVNT_WANT_DOWN); - services[b].timeout = 30000; + if (services[b].state == PROC_DOWN) + do_stop_services(); + else + services[b].timeout = 30000; } else { do_stop_services(); } |