X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fmain.c;h=a1b09c1e9c7d7943c07bce032bb4f5f282033e33;hb=2243a0dd1adc75530bed663db808971789729df3;hp=1c85411a87217c530c5cb82f9ea617e56fa09ee5;hpb=e3a5ff981c25dcb609fe8cc5396a50b81138ee63;p=src%2Fapp-framework-binder.git diff --git a/src/main.c b/src/main.c index 1c85411a..a1b09c1e 100644 --- a/src/main.c +++ b/src/main.c @@ -99,11 +99,10 @@ static void start_list(struct afb_config_list *list, +--------------------------------------------------------- */ static void exit_handler() { - /* TODO: check whether using SIGHUP isn't better */ if (SELF_PGROUP) - killpg(0, SIGKILL); + killpg(0, SIGHUP); else if (childpid > 0) - killpg(childpid, SIGKILL); + killpg(childpid, SIGHUP); } /*---------------------------------------------------------- @@ -412,7 +411,13 @@ static void start() goto error; } - afb_api_so_set_timeout(config->apiTimeout); + /* install hooks */ + if (config->tracereq) + afb_hook_create_xreq(NULL, NULL, NULL, config->tracereq, NULL, NULL); + if (config->traceditf) + afb_hook_create_ditf(NULL, config->traceditf, NULL, NULL); + + afb_apis_set_timeout(config->apiTimeout); start_list(config->dbus_clients, afb_api_dbus_add_client, "the afb-dbus client"); start_list(config->ws_clients, afb_api_ws_add_client, "the afb-websocket client"); start_list(config->ldpaths, afb_api_so_add_pathset, "the binding path set"); @@ -436,10 +441,6 @@ static void start() DEBUG("Init config done"); - /* install trace of requests */ - if (config->tracereq) - afb_hook_req_create(NULL, NULL, NULL, config->tracereq, NULL, NULL); - /* start the services */ if (afb_apis_start_all_services(1) < 0) goto error; @@ -471,12 +472,11 @@ int main(int argc, char *argv[]) // let's run this program with a low priority nice(20); - LOGAUTH("afb-daemon"); - sd_fds_init(); // ------------- Build session handler & init config ------- config = afb_config_parse_arguments(argc, argv); + INFO("running with pid %d", getpid()); // --------- run ----------- if (config->background) { @@ -489,7 +489,7 @@ int main(int argc, char *argv[]) } /* handle groups */ -// atexit(exit_handler); + atexit(exit_handler); /* ignore any SIGPIPE */ signal(SIGPIPE, SIG_IGN);