/* stdin must be open if we do not fork, for monitoring for
* close. stdout must be open if we are logging there, and we
* never close stderr (but debug might dup it onto a log file) */
- close_low_fds(do_fork, !log_stdout, false);
+ if (do_fork) {
+ int ret = close_low_fd(0);
+ if (ret != 0) {
+ exit_daemon("close_low_fd(0) failed: %s\n", errno);
+ }
+ }
+ if (!log_stdout) {
+ int ret = close_low_fd(1);
+ if (ret != 0) {
+ exit_daemon("close_low_fd(1) failed: %s\n", errno);
+ }
+ }
}
void exit_daemon(const char *msg, int error)