Shut down more gracefully on startup failure
This commit is contained in:
parent
e3fef890a0
commit
28f3f6cb2e
30
src/ckpool.c
30
src/ckpool.c
@ -215,6 +215,7 @@ static void sighandler(int sig)
|
||||
sleep(1);
|
||||
__shutdown_children(global_ckp, SIGKILL);
|
||||
pthread_cancel(global_ckp->pth_listener);
|
||||
exit(0);
|
||||
} else {
|
||||
__shutdown_children(global_ckp, SIGKILL);
|
||||
exit(1);
|
||||
@ -280,29 +281,6 @@ static void parse_config(ckpool_t *ckp)
|
||||
json_decref(json_conf);
|
||||
}
|
||||
|
||||
static void test_functions(ckpool_t *ckp)
|
||||
{
|
||||
char *path = ckp->generator.us.path, *buf;
|
||||
int genfd;
|
||||
|
||||
genfd = open_unix_client(ckp->generator.us.path);
|
||||
if (genfd < 0) {
|
||||
LOGWARNING("Failed to open generator socket %s", path);
|
||||
return;
|
||||
}
|
||||
send_unix_msg(genfd, "getbase");
|
||||
buf = recv_unix_msg(genfd);
|
||||
dealloc(buf);
|
||||
#if 0
|
||||
genfd = open_unix_client(ckp->generator.us.path);
|
||||
if (genfd < 0) {
|
||||
LOGWARNING("Failed to open generator socket %s", path);
|
||||
return;
|
||||
}
|
||||
send_unix_msg(genfd, "shutdown");
|
||||
#endif
|
||||
}
|
||||
|
||||
static void prepare_generator(ckpool_t *ckp)
|
||||
{
|
||||
proc_instance_t *pi = &ckp->generator;
|
||||
@ -459,16 +437,14 @@ int main(int argc, char **argv)
|
||||
launch_process(&ckp.stratifier);
|
||||
launch_process(&ckp.connector);
|
||||
|
||||
create_pthread(&ckp.pth_watchdog, watchdog, &ckp);
|
||||
|
||||
handler.sa_handler = &sighandler;
|
||||
handler.sa_flags = 0;
|
||||
sigemptyset(&handler.sa_mask);
|
||||
sigaction(SIGTERM, &handler, NULL);
|
||||
sigaction(SIGINT, &handler, NULL);
|
||||
|
||||
test_functions(&ckp);
|
||||
|
||||
create_pthread(&ckp.pth_watchdog, watchdog, &ckp);
|
||||
|
||||
/* Shutdown from here if the listener is sent a shutdown message */
|
||||
join_pthread(ckp.pth_listener);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user