From: Jinhyung Choi Date: Thu, 21 May 2015 12:00:49 +0000 (+0900) Subject: termination: add SIGINT, SIGTERM, and SIGUSR1 handler X-Git-Tag: submit/tizen/20150527.025434^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d4d5654123ebd6209963d2daf8dc626d97ef9163;p=platform%2Fadaptation%2Femulator%2Femulator-daemon.git termination: add SIGINT, SIGTERM, and SIGUSR1 handler - SIGINT for - SIGTERM for kill - SIGUSR1 for systemd killing signal Change-Id: I3c1826a905b42ef808c765a5e0cd18e1f1db7820 Signed-off-by: Jinhyung Choi --- diff --git a/emuld.service b/emuld.service index 7266b97..46367b4 100644 --- a/emuld.service +++ b/emuld.service @@ -8,6 +8,7 @@ After=connman.service [Service] Type=simple ExecStart=/usr/bin/emuld +KillSignal=SIGUSR1 [Install] WantedBy=emulator.target diff --git a/packaging/emuld.spec b/packaging/emuld.spec index e388b9d..3f873a3 100644 --- a/packaging/emuld.spec +++ b/packaging/emuld.spec @@ -1,5 +1,5 @@ Name: emuld -Version: 0.9.4 +Version: 0.9.5 Release: 0 Summary: Emulator daemon License: Apache-2.0 diff --git a/src/common.cpp b/src/common.cpp index 4072de4..5756729 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -429,6 +429,22 @@ static void boot_done(void *data, DBusMessage *msg) } } +static void sig_handler(int signo) +{ + LOGINFO("received signal: %d. EXIT!", signo); + _exit(0); +} + +static void add_sig_handler(int signo) +{ + sighandler_t sig; + + sig = signal(signo, sig_handler); + if (sig == SIG_ERR) { + LOGERR("adding %d signal failed : %d", signo, errno); + } +} + void* dbus_booting_done_check(void* data) { E_DBus_Connection *connection; @@ -462,6 +478,10 @@ void* dbus_booting_done_check(void* data) } LOGINFO("[DBUS] signal handler is added."); + add_sig_handler(SIGINT); + add_sig_handler(SIGTERM); + add_sig_handler(SIGUSR1); + ecore_main_loop_begin(); e_dbus_signal_handler_del(connection, boot_handler);