From 0899df60c2885941da6eb84800284686264f2bf5 Mon Sep 17 00:00:00 2001 From: nirenjan Date: Mon, 30 Aug 2021 10:28:29 -0700 Subject: [PATCH] Add signal handler to dump configuration to disk on SIGUSR1 --- daemon/x52d_main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/daemon/x52d_main.c b/daemon/x52d_main.c index 14edc2d..c7a4d72 100644 --- a/daemon/x52d_main.c +++ b/daemon/x52d_main.c @@ -35,6 +35,12 @@ static void reload_handler(int signum) flag_reload = true; } +static volatile bool flag_save_cfg; +static void save_config_handler(int signum) +{ + flag_save_cfg = true; +} + static void set_log_file(bool foreground, const char *log_file) { int rc = 0; @@ -137,6 +143,7 @@ static void start_daemon(bool foreground, const char *pid_file) listen_signal(SIGTERM, termination_handler); listen_signal(SIGQUIT, termination_handler); listen_signal(SIGHUP, reload_handler); + listen_signal(SIGUSR1, save_config_handler); if (!foreground) { /* Fork off for the second time */ @@ -303,6 +310,12 @@ int main(int argc, char **argv) x52d_config_apply(); flag_reload = false; } + + if (flag_save_cfg) { + PINELOG_INFO(_("Saving X52 configuration to disk")); + x52d_config_save(conf_file); + flag_save_cfg = false; + } } PINELOG_INFO(_("Received termination signal %s"), strsignal(flag_quit));