diff options
author | tcatm <tcatm@gawab.com> | 2011-03-21 12:11:05 +0100 |
---|---|---|
committer | tcatm <tcatm@gawab.com> | 2011-03-21 12:11:05 +0100 |
commit | 1c09a4adb20aed76dd5f07051c605ffd56a093d6 (patch) | |
tree | b52dc23cdedd6dd744e31876df6287f2d964d38a | |
parent | b7ebc662eb186bf99beaa04d1d21544ffd2c4b2e (diff) |
daemon-mode: add sleep() loop to prevent defunct child process, call setsid() in child
-rw-r--r-- | init.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -236,6 +236,10 @@ bool AppInit2(int argc, char* argv[]) } if (pid > 0) return true; + + pid_t sid = setsid(); + if (sid < 0) + fprintf(stderr, "Error: setsid() returned %d errno %d\n", sid, errno); } #endif @@ -466,6 +470,10 @@ bool AppInit2(int argc, char* argv[]) if (fFirstRun) SetStartOnSystemStartup(true); #endif + + if (fDaemon) + while (!fShutdown) + Sleep(5000); return true; } |