odissey: handle sigterm signal

This commit is contained in:
Dmitry Simonenko 2018-02-28 17:33:38 +03:00
parent 3427b29af1
commit bf79959961
2 changed files with 7 additions and 1 deletions

View File

@ -63,6 +63,7 @@ void od_instance_init(od_instance_t *instance)
sigset_t mask;
sigemptyset(&mask);
sigaddset(&mask, SIGINT);
sigaddset(&mask, SIGTERM);
sigaddset(&mask, SIGHUP);
sigaddset(&mask, SIGPIPE);
sigprocmask(SIG_BLOCK, &mask, NULL);

View File

@ -300,6 +300,7 @@ od_pooler_signal_handler(void *arg)
sigset_t mask;
sigemptyset(&mask);
sigaddset(&mask, SIGINT);
sigaddset(&mask, SIGTERM);
sigaddset(&mask, SIGHUP);
int rc;
rc = machine_signal_init(&mask);
@ -314,10 +315,14 @@ od_pooler_signal_handler(void *arg)
if (rc == -1)
break;
switch (rc) {
case SIGTERM:
od_log(&instance->logger, "pooler", NULL, NULL,
"SIGTERM received, shutting down");
exit(0);
break;
case SIGINT:
od_log(&instance->logger, "pooler", NULL, NULL,
"SIGINT received, shutting down");
exit(0);
break;
case SIGHUP: