From 31269af4f5bdfd92a50ac39f14196bf333bea406 Mon Sep 17 00:00:00 2001 From: Mikko Ylinen Date: Thu, 4 Sep 2014 16:42:31 +0300 Subject: [PATCH] Unmask SIGTERM and enable PIDFile for systemd systemd service stop logic uses SIGTERM to stop services. However, system_server daemon ignores that signal: systemd[1]: Stopping Start the system server service... system_server[3392]: main.c: sig_quit(47) > received SIGTERM signal 15 Due to TimeoutStopSec=2 being set, systemd waits 2 seconds until it proceeds with kill: systemd[1]: system-server.service stopping timed out. Killing. systemd[1]: system-server.service: main process exited, code=killed, status=9/KILL This delays system shutdown time. Additionally, add PIDFile to tell systemd the .pid system_server uses. This is useful since system-service.service uses 'forking' and is run via device-daemon script. Bug-Tizen: TC-1502 Change-Id: I5b00cf11a67ab15b651d754d270b0549c3f806f4 Signed-off-by: Mikko Ylinen --- src/core/main.c | 6 ------ systemd/system-server.service | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/core/main.c b/src/core/main.c index 8ce0730..1e8f1aa 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -42,11 +42,6 @@ static void writepid(char *pidpath) } } -static void sig_quit(int signo) -{ - _E("received SIGTERM signal %d", signo); -} - static void sig_usr1(int signo) { _D("received SIGUSR1 signal %d, deviced'll be finished!", signo); @@ -60,7 +55,6 @@ static int system_main(int argc, char **argv) init_ad(&ad); devices_init(&ad); - signal(SIGTERM, sig_quit); signal(SIGUSR1, sig_usr1); ecore_main_loop_begin(); diff --git a/systemd/system-server.service b/systemd/system-server.service index 22540c9..26ce393 100644 --- a/systemd/system-server.service +++ b/systemd/system-server.service @@ -1,11 +1,11 @@ [Unit] -Description=Start the system server service +Description=System server After=vconf-setup.service [Service] # set DISPLAY for usb_setting launching Type=forking -Environment=DISPLAY=:0 +PIDFile=/var/run/.system_server.pid ExecStart=/usr/bin/device-daemon TimeoutStopSec=2 NotifyAccess=all -- 2.7.4