summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYusuke Sato <yusuke-sato@apn.alpine.co.jp>2018-05-29 19:23:45 +0900
committerChristoph Lipka <clipka@users.noreply.github.com>2018-05-29 12:23:45 +0200
commit33a4300e3e4a25e6f41bcc18b2a03453a4bf3664 (patch)
tree1f38cb1ed5312796ac97588556325e9c56707852 /src
parent9a0aae8c7db7cabdb99a83c11adbf55e1cc02e8d (diff)
downloadDLT-daemon-33a4300e3e4a25e6f41bcc18b2a03453a4bf3664.tar.gz
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 <yusuke-sato@apn.alpine.co.jp>
Diffstat (limited to 'src')
-rw-r--r--src/daemon/dlt-daemon.c15
1 files changed, 8 insertions, 7 deletions
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() */