Deactivate exit-on-close and activate SIGTERM 77/277777/3
authorUnsung Lee <unsung.lee@samsung.com>
Wed, 13 Jul 2022 07:10:25 +0000 (16:10 +0900)
committerUnsung Lee <unsung.lee@samsung.com>
Wed, 13 Jul 2022 07:14:28 +0000 (16:14 +0900)
Change-Id: I8e56f20367dd71d06f1d2c11f05534cdb3349795
Signed-off-by: Unsung Lee <unsung.lee@samsung.com>
src/common/dbus-handler.c
src/resourced/init.c

index 5c877cf..cc80344 100644 (file)
@@ -41,7 +41,7 @@ static GList *dbus_method_handle_list;
 
 GDBusConnection *d_bus_get_connection(void)
 {
-       static GDBusConnection *g_dbus_conn;
+       static GDBusConnection *g_dbus_conn = NULL;
 
        if (g_dbus_conn)
                return g_dbus_conn;
@@ -49,6 +49,7 @@ GDBusConnection *d_bus_get_connection(void)
        g_dbus_conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, NULL);
        g_assert(g_dbus_conn);
 
+       g_dbus_connection_set_exit_on_close(g_dbus_conn, FALSE);
        return g_dbus_conn;
 }
 
@@ -409,8 +410,8 @@ resourced_ret_c d_bus_reply_message(GDBusMessage *msg)
 
 void d_bus_init(void)
 {
-       owner_id = g_bus_own_name(G_BUS_TYPE_SYSTEM, RESOURCED_BUS_NAME,
-                       G_BUS_NAME_OWNER_FLAGS_NONE, NULL, NULL, NULL, NULL, NULL);
+       owner_id = g_bus_own_name_on_connection(d_bus_get_connection(), RESOURCED_BUS_NAME,
+                       G_BUS_NAME_OWNER_FLAGS_NONE, NULL, NULL, NULL, NULL);
        if (owner_id == 0) {
                _E("Failed to get gdbus own name");
        }
index b12d65f..4e42537 100644 (file)
@@ -119,8 +119,7 @@ static void sig_term_handler(int sig, siginfo_t *siginfo, void *context)
 
        proc_get_cmdline(sender_pid, appname, sizeof(appname));
        _D("signal = %d sender pid = %d (%s)", sig, sender_pid, appname);
-       _I("Do not quit resourced");
-//     resourced_quit_mainloop();
+       resourced_quit_mainloop();
 }
 
 static void add_signal_handler(void)
@@ -131,7 +130,6 @@ static void add_signal_handler(void)
        sig_act.sa_flags = 0;
        sig_act.sa_flags |= SA_SIGINFO;
        sigaction(SIGTERM, &sig_act, NULL);
-//     signal(SIGTERM, sig_term_handler);
        signal(SIGINT, sig_int_handler);
 }