+--------------------------------------------------------- */
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);
}
/*----------------------------------------------------------
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");
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;
// 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) {
}
/* handle groups */
-// atexit(exit_handler);
+ atexit(exit_handler);
/* ignore any SIGPIPE */
signal(SIGPIPE, SIG_IGN);