--- a/pppd/main.c +++ b/pppd/main.c @@ -1570,6 +1570,8 @@ safe_fork(int infd, int outfd, int errfd if (errfd == 0 || errfd == 1) errfd = dup(errfd); + closelog(); + /* dup the in, out, err fds to 0, 1, 2 */ if (infd != 0) dup2(infd, 0); @@ -1578,7 +1580,6 @@ safe_fork(int infd, int outfd, int errfd if (errfd != 2) dup2(errfd, 2); - closelog(); if (log_to_fd > 2) close(log_to_fd); if (the_channel->close)