With rotating logs, there is a problem when the syslog is opened only once (in the beginning). So open the log everytime we write something, and close it directly after writing. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- daemon.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/daemon.c b/daemon.c index 2b4a6f1..a887c72 100644 --- a/daemon.c +++ b/daemon.c @@ -90,7 +90,9 @@ static void logreport(int priority, const char *err, va_list params) msglen = vsnprintf(buf + buflen, maxlen, err, params); if (log_syslog) { + openlog("git-daemon", 0, LOG_DAEMON); syslog(priority, "%s", buf); + closelog(); return; } @@ -767,8 +769,11 @@ static void child_handler(int signo) const char *dead = ""; if (!WIFEXITED(status) || WEXITSTATUS(status) > 0) dead = " (with error)"; - if (log_syslog) + if (log_syslog) { + openlog("git-daemon", 0, LOG_DAEMON); syslog(LOG_INFO, "[%d] Disconnected%s", pid, dead); + closelog(); + } else fprintf(stderr, "[%d] Disconnected%s\n", pid, dead); } @@ -1149,10 +1154,8 @@ int main(int argc, char **argv) usage(daemon_usage); } - if (log_syslog) { - openlog("git-daemon", 0, LOG_DAEMON); + if (log_syslog) set_die_routine(daemon_die); - } if (inetd_mode && (group_name || user_name)) die("--user and --group are incompatible with --inetd"); -- 1.5.4.4.GIT -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html