From 33a4300e3e4a25e6f41bcc18b2a03453a4bf3664 Mon Sep 17 00:00:00 2001 From: Yusuke Sato Date: Tue, 29 May 2018 19:23:45 +0900 Subject: dlt-daemon: Output signal number at exit (#68) So far, signal number had been output in signal handler. However this was not so safety. And when syslog was used as log output destination of dlt_log(), we could not see any info in the same Life Cycle. So dlt_log() is removed from signal handler and signal number is newly output by DLT message and dlt_log() at exit. This info will help analysis why dlt-daemon exits. Signed-off-by: Yusuke Sato --- src/daemon/dlt-daemon.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index 83c891d..0232cb1 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -88,6 +88,8 @@ static uint32_t watchdog_trigger_interval; // watchdog trigger interval in [s] /* used in main event loop and signal handler */ int g_exit = 0; +int g_signo = 0; + /** * Print usage information of tool. */ @@ -788,7 +790,9 @@ int main(int argc, char* argv[]) &daemon_local); } - dlt_daemon_log_internal(&daemon, &daemon_local, "Exiting Daemon...", daemon_local.flags.vflag); + snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"Exiting DLT daemon... [%d]", g_signo); + dlt_daemon_log_internal(&daemon, &daemon_local, str, daemon_local.flags.vflag); + dlt_log(LOG_NOTICE, str); dlt_daemon_local_cleanup(&daemon, &daemon_local, daemon_local.flags.vflag); @@ -1342,6 +1346,7 @@ void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, i void dlt_daemon_signal_handler(int sig) { + g_signo = sig; switch (sig) { case SIGHUP: @@ -1349,10 +1354,6 @@ void dlt_daemon_signal_handler(int sig) case SIGINT: case SIGQUIT: { - /* finalize the server */ - snprintf(str,DLT_DAEMON_TEXTBUFSIZE,"Exiting DLT daemon due to signal: %s\n", strsignal(sig) ); - dlt_log(LOG_NOTICE, str); - /* Try to delete existing pipe, ignore result of unlink() */ char tmp[PATH_MAX + 1]; snprintf(tmp, PATH_MAX, "%s/dlt", dltFifoBaseDir); @@ -1370,8 +1371,8 @@ void dlt_daemon_signal_handler(int sig) } default: { - dlt_log(LOG_CRIT, "This case should never happen!"); - break; + /* This case should never happen! */ + break; } } /* switch */ } /* dlt_daemon_signal_handler() */ -- cgit v1.2.1