diff options
author | Leah Neukirchen <leah@vuxu.org> | 2024-01-23 22:05:01 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2024-01-23 22:05:01 +0100 |
commit | 706ec6244ad594e617941d22377d11aaa4cff126 (patch) | |
tree | 9d5e747e853ea281bf90a51e53a26675a8dee4d6 | |
parent | 2a0a90050c288dc617d71e79e0de203bf11cfc36 (diff) | |
download | nitro-706ec6244ad594e617941d22377d11aaa4cff126.tar.gz nitro-706ec6244ad594e617941d22377d11aaa4cff126.tar.xz nitro-706ec6244ad594e617941d22377d11aaa4cff126.zip |
more robust shutdown
-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(); } |