/** Finish putting the process into daemon mode: drop standard fds, and tell
* the parent process to exit. (Note: it's safe to call this more than once:
* calls after the first are ignored. Calls start_daemon first if it hasn't
- * been called already.)
+ * been called already.) Return true if we actually did a fork; false if we
+ * didn't.
*/
-void
+int
finish_daemon(const char *desired_cwd)
{
int nullfd;
char c = '.';
if (finish_daemon_called)
- return;
+ return 0;
if (!start_daemon_called)
start_daemon();
finish_daemon_called = 1;
log_err(LD_GENERAL,"write failed. Exiting.");
}
close(daemon_filedes[1]);
+
+ return 0;
}
#else /* !(!defined(_WIN32)) */
/* defined(_WIN32) */