Replace daemonize function by std glibc daemon()
authorDavid Goulet <david.goulet@polymtl.ca>
Thu, 21 Apr 2011 16:31:00 +0000 (12:31 -0400)
committerDavid Goulet <david.goulet@polymtl.ca>
Thu, 21 Apr 2011 16:32:09 +0000 (12:32 -0400)
Signed-off-by: David Goulet <david.goulet@polymtl.ca>
ltt-sessiond/ltt-sessiond.c

index c3b117da304458f48973e623227fe0662d6cae65..050c67397345eb0fa97a04239342959364926d90 100644 (file)
@@ -48,7 +48,6 @@ const char default_global_apps_pipe[] = DEFAULT_GLOBAL_APPS_PIPE;
 static int set_signal_handler(void);
 static int set_socket_perms(void);
 static void sighandler(int);
-static void daemonize(void);
 static void cleanup(void);
 static void copy_common_data(struct lttcomm_lttng_msg *llm, struct lttcomm_session_msg *lsm);
 static int check_existing_daemon(void);
@@ -702,48 +701,6 @@ end:
        return ret;
 }
 
-/*
- *     daemonize
- *
- *     Daemonize ltt-sessiond.
- */
-static void daemonize(void)
-{
-       pid_t pid, sid;
-       const char *home_dir = get_home_dir();
-
-       /* Fork off the parent process */
-       if ((pid = fork()) < 0) {
-               perror("fork");
-               exit(EXIT_FAILURE);
-       }
-
-       /* Parent can now exit */
-       if (pid > 0) {
-               exit(EXIT_SUCCESS);
-       }
-
-       /* Change the file mode mask */
-       umask(0);
-
-       /* Create a new SID for the child process */
-       if ((sid = setsid()) < 0) {
-               perror("setsid");
-               exit(EXIT_FAILURE);
-       }
-
-       /* Change the current working directory */
-       if ((chdir(home_dir)) < 0) {
-               perror("chdir");
-               exit(EXIT_FAILURE);
-       }
-
-       /* Close out the standard file descriptors */
-       close(STDIN_FILENO);
-       close(STDOUT_FILENO);
-       close(STDERR_FILENO);
-}
-
 /*
  *     set_signal_handler
  *
@@ -836,7 +793,11 @@ int main(int argc, char **argv)
 
        /* Daemonize */
        if (opt_daemon) {
-               daemonize();
+               ret = daemon(0, 0);
+               if (ret < 0) {
+                       perror("daemon");
+                       goto error;
+               }
        }
 
        /* Check if daemon is UID = 0 */
This page took 0.028321 seconds and 4 git commands to generate.