author | Johannes Sixt <j6t@kdbg.org> | |
Sun, 14 Jun 2009 20:38:51 +0000 (22:38 +0200) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Thu, 18 Jun 2009 18:38:36 +0000 (11:38 -0700) | ||
commit | 5d87dd4fcac808fc0f0b993b470644ba7d2d62a2 | |
tree | d0709bfdeb93ffaa9899d6228f3d57db262b6e8a | tree | snapshot |
parent | 4f4fa9c228a1ac2854c0814b5b23df43b8d98203 | commit | diff |
daemon: send stderr of service programs to the syslog
If git-daemon is run with --detach or --inetd, then stderr is explicitly
redirected to /dev/null. But notice that the service programs were spawned
via execl_git_cmd(), in particular, the stderr channel is inherited from
the daemon. This means that errors that the programs wrote to stderr (for
example, via die()), went to /dev/null.
This patch arranges that the daemon does not merely exec the service
program, but forks it and monitors stderr of the child; it writes the
errors that it produces to the daemons log via logerror().
A consequence is that the daemon process remains in memory for the full
duration of the service program, but this cannot be avoided.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
If git-daemon is run with --detach or --inetd, then stderr is explicitly
redirected to /dev/null. But notice that the service programs were spawned
via execl_git_cmd(), in particular, the stderr channel is inherited from
the daemon. This means that errors that the programs wrote to stderr (for
example, via die()), went to /dev/null.
This patch arranges that the daemon does not merely exec the service
program, but forks it and monitors stderr of the child; it writes the
errors that it produces to the daemons log via logerror().
A consequence is that the daemon process remains in memory for the full
duration of the service program, but this cannot be avoided.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
daemon.c | diff | blob | history |