]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msgr: use daemon() to daemonize
authorSage Weil <sage@newdream.net>
Wed, 11 Mar 2009 18:06:17 +0000 (11:06 -0700)
committerSage Weil <sage@newdream.net>
Wed, 11 Mar 2009 18:06:17 +0000 (11:06 -0700)
Otherwise we don't clean up all our fds or something and ssh execs hang.

src/msg/SimpleMessenger.cc

index 9c19f3481fdbeaa722c0d167a67a7806a33cc8e8..56d8e6dae2290f17c16ea13cd6e5d1e5fb13f6a9 100644 (file)
@@ -388,16 +388,21 @@ int Rank::start(bool nodaemon)
     }
     dout(1) << "rank.start daemonizing" << dendl;
 
-    pid_t pid = fork();
-    if (pid) {
-      // i am parent
-      write_pid_file(pid);
-      ::close(0);
-      ::close(1);
-      ::close(2);
-      _exit(0);
+    if (1) {
+      daemon(1, 0);
+      write_pid_file(getpid());
+    } else {
+      pid_t pid = fork();
+      if (pid) {
+       // i am parent
+       write_pid_file(pid);
+       ::close(0);
+       ::close(1);
+       ::close(2);
+       _exit(0);
+      }
     }
-
     if (g_conf.chdir && g_conf.chdir[0]) {
       ::mkdir(g_conf.chdir, 0700);
       ::chdir(g_conf.chdir);