Commit dd435b51 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

nghttpx: Redirect stderr to errorlog file

parent ff60cc6b
......@@ -422,6 +422,7 @@ void reopen_log_signal_cb(struct ev_loop *loop, ev_signal *w, int revents) {
}
(void)reopen_log_files();
redirect_stderr_to_errorlog();
if (get_config()->num_worker > 1) {
conn_handler->worker_reopen_log_files();
......@@ -636,6 +637,10 @@ int event_loop() {
// We get new PID after successful daemon().
mod_config()->pid = getpid();
// daemon redirects stderr file descriptor to /dev/null, so we
// need this.
redirect_stderr_to_errorlog();
}
if (get_config()->pid_file) {
......@@ -1916,6 +1921,8 @@ int main(int argc, char **argv) {
exit(EXIT_FAILURE);
}
redirect_stderr_to_errorlog();
if (get_config()->uid != 0) {
if (log_config()->accesslog_fd != -1 &&
fchown(log_config()->accesslog_fd, get_config()->uid,
......
......@@ -324,4 +324,14 @@ int reopen_log_files() {
return res;
}
void redirect_stderr_to_errorlog() {
auto lgconf = log_config();
if (get_config()->errorlog_syslog || lgconf->errorlog_fd == -1) {
return;
}
dup2(lgconf->errorlog_fd, STDERR_FILENO);
}
} // namespace shrpx
......@@ -143,6 +143,8 @@ void upstream_accesslog(const std::vector<LogFragment> &lf, LogSpec *lgsp);
int reopen_log_files();
void redirect_stderr_to_errorlog();
} // namespace shrpx
#endif // SHRPX_LOG_H
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment