#include #include #include #include "stellar/log.h" #include "stellar/stellar.h" #include "stellar_core.h" struct stellar *st = NULL; static void signal_handler(int signo) { struct logger *logger = stellar_get_logger(st); if (signo == SIGINT) { STELLAR_LOG_FATAL(logger, "signal", "SIGINT received, notify threads to exit"); stellar_loopbreak(st); } if (signo == SIGQUIT) { STELLAR_LOG_FATAL(logger, "signal", "SIGQUIT received, notify threads to exit"); stellar_loopbreak(st); } if (signo == SIGTERM) { STELLAR_LOG_FATAL(logger, "signal", "SIGTERM received, notify threads to exit"); stellar_loopbreak(st); } if (signo == SIGHUP) { STELLAR_LOG_FATAL(logger, "signal", "SIGHUP received, reload log level"); stellar_reload_log_level(st); } } int main(int argc __attribute__((__unused__)), char **argv __attribute__((__unused__))) { signal(SIGINT, signal_handler); signal(SIGQUIT, signal_handler); signal(SIGTERM, signal_handler); signal(SIGHUP, signal_handler); st = stellar_new("./conf/stellar.toml", "./plugin/spec.toml", "./conf/log.toml"); if (st == NULL) { return 0; } stellar_run(st); stellar_free(st); return 0; }