diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-11-11 12:33:24 +0300 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-11-11 12:33:24 +0300 |
commit | 3b35fbb6323adadf7108e1d32fc4d93b4d89e9c4 (patch) | |
tree | 31ed116e9873ed135b713851b8d97780617d488b /runit/runsvdir.c | |
parent | 9f2f808b0dd531840b906e6dd09550a626c32bf1 (diff) |
runsvdir: straighten some convoluted code. logic is unchanged
Diffstat (limited to 'runit/runsvdir.c')
-rw-r--r-- | runit/runsvdir.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/runit/runsvdir.c b/runit/runsvdir.c index 9d560e097..f67330485 100644 --- a/runit/runsvdir.c +++ b/runit/runsvdir.c @@ -377,19 +377,17 @@ int runsvdir_main(int argc UNUSED_PARAM, char **argv) } } - switch (bb_got_signal) { - case SIGHUP: + if (bb_got_signal == SIGHUP) { for (i = 0; i < svnum; i++) if (sv[i].pid) kill(sv[i].pid, SIGTERM); - /* Fall through */ - default: /* SIGTERM (or SIGUSRn if we are init) */ - /* Exit unless we are init */ - if (getpid() == 1) - break; - return (SIGHUP == bb_got_signal) ? 111 : EXIT_SUCCESS; } + /* SIGHUP or SIGTERM (or SIGUSRn if we are init) */ + /* Exit unless we are init */ + if (getpid() != 1) + return (SIGHUP == bb_got_signal) ? 111 : EXIT_SUCCESS; + /* init continues to monitor services forever */ bb_got_signal = 0; } /* for (;;) */ } |