static gboolean remove_pid_file(void);
static gboolean remove_ready_file(void);
static gboolean remove_daemon_setup_file(void);
-static int set_signal_handlers(void);
-static void terminate_handler(int signum);
-static void reload_conf_handler(int signum);
-static void quit_main_loop(void);
-
-
static gboolean fork_wait(void)
{
return remove_pid_file() && remove_ready_file();
}
-static int set_signal_handlers(void)
-{
- struct sigaction sa_term;
- struct sigaction sa_reload_conf;
- struct sigaction sa_ignore;
-
- sa_term.sa_handler = terminate_handler;
- sigemptyset(&sa_term.sa_mask);
- sa_term.sa_flags = SA_RESETHAND;
-
- sa_reload_conf.sa_handler = reload_conf_handler;
- sigemptyset(&sa_reload_conf.sa_mask);
- sa_reload_conf.sa_flags = 0;
-
- sa_ignore.sa_handler = SIG_IGN;
- sigemptyset(&sa_ignore.sa_mask);
- sa_ignore.sa_flags = 0;
-
- return sigaction(SIGTERM, &sa_term, NULL) != -1 &&
- sigaction(SIGINT, &sa_ignore, NULL) != -1 &&
- sigaction(SIGQUIT, &sa_ignore, NULL) != -1 &&
- sigaction(SIGHUP, &sa_reload_conf, NULL) != -1;
-}
-
-static void terminate_handler(int signum)
-{
- MM_RM_DEBUG("SIGTERM is received");
- quit_main_loop();
-}
-
-static void reload_conf_handler(int signum)
-{
- MM_RM_DEBUG("SIGHUP is received");
- restart = TRUE;
- quit_main_loop();
-}
-
-static void quit_main_loop(void)
-{
- if (main_loop) {
- _mmrm_dmn_status_callback(MM_RESOURCE_MANAGER_STATUS_DISCONNECTED);
- g_main_loop_quit(main_loop);
- }
-}
-
int main(int argc, char *argv[])
{
switch (daemonize(NULL)) {
case MM_RESOURCE_MANAGER_DAEMON_NOW:
- MM_RM_RETVM_IF(!set_signal_handlers(), EXIT_FAILURE, "Daemon cannot set signal handlers");
#ifdef RM_GCOV_TEST
setenv("GCOV_PREFIX", "/tmp", 1);
gboolean _mmrm_dmn_init(void)
{
MM_RM_RETVMS_IF(access(RELEASE_CB_SYNC_PATH, F_OK) != 0, FALSE,
- "systemd-tmpfiles-setup.service can't create %s errno[%d]", RELEASE_CB_SYNC_PATH, errno);
+ "access(%s) is failed errno[%d]", RELEASE_CB_SYNC_PATH, errno);
MM_RM_RETVM_IF(mm_resource_manager_backend_init() != MM_RESOURCE_MANAGER_ERROR_NONE,
FALSE, "Back-end cannot be initialized");